MSTest:同一TestClass中的测试执行顺序

时间:2011-06-10 22:47:44

标签: visual-studio-2010 mstest

在使用MSTest执行测试时,我需要强制执行TestClass命令。

TestClasses的顺序和每个类中的测试可以是随机的,但是MSTest不应该从另一个TestClass中选择一个测试,直到它完成执行ClassInitialize,所有测试都在课堂上和ClassCleanup

我有全局AssemblyInitializeAssemblyCleanup,因此以下内容不起作用,因为它初始化了每个测试的程序集:


MSTest.exe /testcontainer:MyUnitTests.dll /resultsfile:report.trx /test:TestClass1 /test:TestClass2

1 个答案:

答案 0 :(得分:1)

我问了一个类似的问题here,虽然它与测试类执行顺序无关。如果排序的原因是可以设置/维护某种状态,则排序测试可能会导致它们变脆。如果您的测试属于这种情况,我建议您以与订单无关的方式编写它们。

关于汇编级代码的问题,AssemblyInitializeAssemblyCleanup的解决方法如下:

private int InitCount;

[AssemblyInitialize]
public static void Setup(TestContext context)
{
     if (InitCount++ == 0) {
         //Do Something
     }
}

[AssemblyCleanup]
public static void Teardown()
{
      if (--InitCount == 0) {
          //Do something
      }
}

基本上,您可以强制组装级方法仅触发一次。