测试案例以序列而不是平行运行



我搜索了此问题,但找不到答案。

我的测试运行似乎是并行运行的,并导致彼此失败。单独运行时,他们都会通过。我试图在测试中添加线程并让它们入睡,但没有运气。

是否可以接一个地进行序列运行这些测试?

我的环境:

Visual Studio 2010Resmanper Jet Brains 6.1

我建议您进行确定性的单位测试。也就是说,它们不依赖于他们运行的顺序,也不依赖于在之前或之后进行的其他测试。不这样做是失败的秘诀。大多数测试跑者基于测试方法是完全独立的事实。

这一事实在调用测试类的方法的方式上固有地很明显。例如使用MS测试,您可以具有汇编,类和测试初始化方法。所有这些都被调用。例如,使用以下类:

   [TestClass()]
   public class DivideClassTest
   {
      [AssemblyInitialize()]
      public static void AssemblyInit(TestContext context)
      {
         Console.WriteLine("Assembly Init");
         }
      [ClassInitialize()]
      public static void ClassInit(TestContext context)
      {
         Console.WriteLine("ClassInit");
      }
      [TestInitialize()]
      public void Initialize()
      {
         Console.WriteLine("TestMethodInit");
      }
      [TestCleanup()]
      public void Cleanup()
      {
         Console.WriteLine("TestMethodCleanup");
      }
      [ClassCleanup()]
      public static void ClassCleanup()
      {
         Console.WriteLine("ClassCleanup");
      }
      [AssemblyCleanup()]
      public static void AssemblyCleanup()
      {
         Console.WriteLine("AssemblyCleanup");
      }
      [TestMethod()]
      public void Test1()
      {
          Console.WriteLine("Test1");
      }
      [TestMethod()]
      public void Test2()
      {
          Console.WriteLine("Test2");
      }
  } 

您会看到

的输出
Assembly Init
ClassInit
TestMethodInit
Test1
TestMethodCleanup
TestMethodInit
Test2
TestMethodCleanup
ClassCleanup
AssemblyCleanup

尽管有一个"测试"类,但测试方法本身被视为测试。"测试"类可以有效地进行许多测试。

相关内容

  • 没有找到相关文章

最新更新