Ahm*_*mad 11 c# unit-testing visual-studio
默认情况下,当您从 Visual Studio 的测试资源管理器运行单元测试时,它仅运行一次。有没有办法让它运行多次,比如100次之类的?然后在多次运行后,我收到一份报告,说明测试通过/失败的次数以及导致所有失败的原因(如果有)?
注意:我查看了其他一些类似的 Stack Overflow 线程,但没有看到适用于我的情况的解决方案。
我认为这是一个完全合理的问题,因为有时由于使用 AutoFixture 或其他有意随机的元素来填充测试模型,测试可能会不稳定。这种随机性很有价值,因为它可以发现测试中不可预见的缺陷和生产代码中的错误。
据我所知,没有专业插件可以为 Visual Studio 提供此功能,但总有编码方法:
public class TestClass
{
private Random _random;
public TestClass()
{
_random = new Random();
}
[Fact]
public void FlakyTest()
{
var number = _random.Next(10);
Assert.True(number < 7);
}
[Fact]
public void MyFlakyTestWorks100Times()
{
for (var i = 0; i < 100; i++)
{
var tests = new TestClass();
tests.FlakyTest();
}
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:显然,在将工作提交到构建管道之前,您需要认真考虑删除该循环测试!