Wul*_*lie 5 unit-testing visual-studio-2008
在复杂的VS2008解决方案中,我有三个单元测试项目.当它们在相同的测试数据库上运行时,重要的是一个接一个地执行测试项目.首先,哪个项目在另一个项目开始之前完成并不重要.
如果我想要全部执行它们,有几种方法可以做到这一点,这会导致不同的结果:
所以问题是,在使用第三种方法时,是什么决定了单元测试序列?有没有办法在.testrunconfig中指定默认测试列表?
由于存在变通方法,因此问题根本不重要.但欢迎任何想法.谢谢.
您正在体验称为交互式测试的单元测试气味,在优秀的xUnit测试模式中进行了描述.更具体地说,您遇到了共享夹具,这是另一种说法,即您的几个测试使用相同的共享数据库,并且它们依赖于先前测试运行的结果.
这是一种反模式,应该不惜一切代价避免.该书提供了有关如何处理这种情况的广泛指导.
我开始描述这个的原因是,这就是MSTest不保证测试顺序的原因.虽然订单看似(半)确定性,但您不能依赖它.其他一些单元测试框架(xUnit.NET可以想到)甚至可以在每次运行测试套件时以随机顺序运行测试.MSTest不是那么极端,但你无法订购单元测试.
也就是说,如果您正在运行Visual Studio Team Suite或(我相信)Team Test,那么有一种称为Ordered Test的测试.您可以使用它来指定所有测试(包括单元测试)应按特定顺序执行.
| 归档时间: |
|
| 查看次数: |
2454 次 |
| 最近记录: |