【发布时间】:2016-05-09 11:51:46
【问题描述】:
我在一个 MSTest 项目中的两个单独的类中进行了测试,每个类(我认为)设置正确并且每个类都运行良好,但是当我运行整个项目的测试时,有些测试失败了。
我的两个课程都涉及设置一些外部数据,但每个课程都旨在确保在开始之前处于已知状态(并在完成后擦除它)。虽然 MSTest 可能会并行运行测试类中的所有方法(?),但我会按顺序运行每个类......这是一个不正确的假设吗?
编辑:我遇到了这个问题 (how does MSTest determine the order in which to run test methods?) 这似乎表明 VS 可能会以(看似但实际上并非)随机顺序将来自多个类的测试交错,即它确实 不 运行所有测试在 B 类开始之前在 A 类中。这在我的情况下是有问题的,因为即使我在一个类中订购我的测试,MSTest 仍可能运行来自多个冲突的类的方法?
【问题讨论】:
-
@L-Three 我明白了吗,除非我明确要求,否则 VS 确实 不 并行运行测试?
-
确实,默认顺序。从 VS 2010 开始,并行是可能的。另请阅读blogs.msdn.microsoft.com/vstsqualitytools/2009/12/01/…。
-
规则:每个测试应该完全独立于任何其他测试;和执行顺序无关紧要。
-
如果每个方法都执行完整的 setup/teardown 功能而不是在类 init/teardown 中执行,我可以这样做,这似乎有点低效。部分我只是没想到不同的类的测试会交错因为我们有类设置/拆卸功能可以影响环境
标签: c# visual-studio visual-studio-2013 mstest