无法在 Visual Studio 中使用 XUnit 并行运行测试

use*_*953 6 unit-testing xunit

我有两个类 TestClass1, TestClass2

我在我的测试项目中的 AssemblyInfo.cs 文件中通过程序集设置了 MaxParallel 线程:
[assembly: Xunit.CollectionBehaviorAttribute(MaxParallelThreads = 4)]
Reference Set maximum parallel threads

我已经安装了 xunit-2.0.0-beta4-build2738(Prerelease)。还安装了 Xunit runner 来查找测试。

根据我的知识和研究,Xunit 不会在同一个集合中并行运行测试。参考 在 xUnit.net v2使用测试集合,这就是为什么我对下面的两个类都使用了不同的集合。

Visual Studio 2013 找到了我的测试,但是当我运行所有测试时,它仍然按顺序运行测试。我希望它们并行运行。

如果有人可以提供帮助,那就太好了!

我的代码如下:
Namespace1

namespace name1
{
   public class MFixture
   {

   }

   [CollectionDefinition("Test1")]
   public class CollectionClass : ICollectionFixture<MFixture>
   {

   }

   [Collection("Test1")]
   public class TestClass1
   {
      // variables
      public TestClass1()
      {
         //code
      }

      [Fact]
      public void method1()
      {
          //code
      }

      [Fact]
      public void method2()
      {
        //code
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

命名空间2

namespace name2
{
   public class MFixture1
   {

   }

   [CollectionDefinition("Test2")]
   public class CollectionClass1 : ICollectionFixture<MFixture1>
   {

   }

   [Collection("Test2")]
   public class TestClass2
   {
      // variables
      public TestClass2()
      {
         //code
      }

      [Fact]
      public void method12()
      {
        //code
      }

      [Fact]
      public void method22(){
      {
         //code
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

其他参考资料
如何与 xUnit
XUnit.net 属性 并行运行 Selenium 测试
XUnit.net 问题

Sta*_*ajs 0

Visual Studio 似乎不支持并行运行测试。我还没有测试过您询问的确切版本,但发现其他评论也说了同样的话。根据建议,从命令行运行应该可以。

对我来说,我使用的是 VS2015、dnx 1.0.0-rc1-final、xunit 2.1.0、xunit.runner.dnx 2.1.0-rc1-build204,并且可以确认 VS Test Explorer 是愚蠢的。

根据文档

默认情况下,每个测试类都是一个唯一的测试集合。

因此,考虑到像这样的一些人为的“测试”,应该很容易看出它们是否并行运行:

图像

视觉工作室:

图像

命令行:

图像