2014-09-18 120 views
3

運行在平行的xUnit測試中,我有兩個類TestClass1,TestClass2
無法在Visual Studio

我已經通過裝配在AssemblyInfo.cs文件在我的測試項目設置MaxParallel主題:
[裝配:的xUnit。 CollectionBehaviorAttribute(MaxParallelThreads = 4)]
參考Set maximum parallel threads

我已經安裝的xUnit-2.0.0-BETA4-build2738(預發行)。還安裝了Xunit跑步者以查找測試。

從我的知識和研究來看,Xunit不會同時在同一個集合中運行測試。 引用Using test collections in 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 
     } 
    } 
} 

Namespace2

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 
     } 
    } 
} 

其他參考資料
How to run Selenium tests in parallel with xUnit
XUnit.net attributes
XUnit.net issues

+0

是你能夠找到一個解決方案? – 2014-09-26 16:58:44

+0

還沒有。我寧願開始實施我自己的。 – user3508953 2014-10-02 12:46:25

回答

1

看來,Visual Studio中不支持並行運行測試。我還沒有測試過你詢問的確切版本,但發現other comments這麼說。從命令行運行應該工作,從As suggested

對我來說,我使用的是VS2015,dnx 1.0.0-rc1-final,xunit 2.1.0,xunit.runner.dnx 2.1.0-rc1-build204,並且可以確認VS Test Explorer是愚蠢的。

根據the docs

默認情況下,每個測試類是一種獨特的測試集。

所以給出了一些人爲的 「測試」 像這樣的,應該很容易,看看他們在平行或不運行:

image

的Visual Studio:

image

命令行:

image

0

在xUnit中,每個測試類都是一個獨特的測試集合。相同測試類別內的測試不會相互並行地運行

所以爲了達到這個目的,你需要保留你的測試在不同的集合中(你想並行運行),但是這不是解決你的問題的有效方法。

我回答這個按我的知識,我在網上看到的內容,你也可以參考this link

相關問題