在复杂的VS2008解决方案中,我有三个单元测试项目。由于它们在相同的测试数据库上运行,因此测试项目一个接一个地执行很重要。首先哪个项目并不重要,只是在另一个项目开始之前就完成了。在解决方案中运行所有测试时的单元测试序列
如果我想执行所有这些,有几种方法可以做到这一点,这导致不同的结果:
- 我有一个测试列表,其中测试由项目有序.vsmdi文件。如果我打开列表并从测试列表编辑器执行测试,一切都很好。
- 如果我打开测试视图窗口,按项目排序测试并运行它们,再次一切正常。
- 但是,如果我通过从菜单中选择“测试 - >运行 - >解决方案中的所有测试”来运行测试,它们将以随机顺序执行,其中一些测试失败,因为其他测试项目之一已经在操作测试D b。
所以问题是,什么决定了使用第三种方法时的单元测试序列?有没有办法在.testrunconfig中指定默认测试列表?
由于有解决方法,这个问题根本就不重要。但任何想法都是受欢迎的。 谢谢。
我完全同意应该避免共享夹具。然而,这里的问题不是测试的顺序,而是测试项目并行运行,导致数据库设置和拆卸的同步问题。我没有详细描述。我认为现在最好的解决方案是db的全局设置和拆卸。 – Wullie 2009-12-01 02:23:56
我不认为MSTest并行运行测试 - 至少,这不是我的经验。 – 2009-12-01 05:46:48