.C#单元测试环境,具有用于重播目的的完整运行转储

本文关键字:转储 运行 测试环境 单元 用于 | 更新日期: 2023-09-27 18:27:44

有没有一个工具可以让我在运行单元测试时记录完整的环境设置,包括所有本地变量值?

我的问题是,我有几个单元测试是不确定的,在启动时,一些变量被分配了随机值。我注意到,一个特定的测试95%的时间是正确的,但在这5%的时间里失败了,这很难抓住。

如果有一个工具/测试环境,在特定的测试方法失败的情况下重播它,那就太好了。当然,分配随机值必须被跳过,并用记录值代替。

也许这太难实现了。所以我的第二个问题是,是否有一个很好的测试框架,具有良好的日志功能(在异常、断言失败等情况下进行堆栈跟踪记录),可以让我分析所描述场景中的错误。或者,也许我现在使用的工具有这样的功能,但我不知道。

我现在使用的工具:Visual Studio 2012高级版CU4+NUnit 2.6.3+NUnit测试适配器1.2+TestDriven.NET-3.8.2860

.C#单元测试环境,具有用于重播目的的完整运行转储

在这种情况下,我倾向于将种子值传递给测试中的Random对象。这将确保您在测试中每次都生成相同的"随机"数据,从而使它们既具有随机性又具有确定性。

所以你说在哪里

Random random = new Random();

将其更改为

Random random = new Random(0);