2017-01-02 224 views
0

需要你的幫助在以下情形:運行多個測試相同的不同測試方法構建項目

  • 我有2個項目,不同單位的解決方案測試
  • 這些項目產生2個不同的dll:*部署。 DLL和* database.dll
  • 我有,我想用它來運行這些測試TFS的生成,我使用「測試案例過濾器」來過濾我的測試類別

    (TestCategory=TEST1|TestCategory=TEST2|TestCategory=TEST3|TestCategory=TEST4) 
    

    和 「測試源規格」 我既過濾DLL(*deployment.dll;*database.dll

  • * .deployment.dll有TEST2,TEST3,TEST4
  • * .database.dll有TEST1

這不起作用,* database.dll測試不運行。在Visual Studio Test Runner中選擇的測試

請問您可以幫忙嗎?如果我只用1個DLL進行構建,例如* .database.dll,TEST1運行良好。

(UPDATE)方案1個

測試用例篩選: TestCategory = TEST1 | TestCategory = TEST1 | TestCategory = TEST2 | TestCategory = TEST3 | TestCategory = TEST4

測試源規格: * database.dll; * deployment.dll

僅運行測試1


(UPDATE)方案2

測試用例篩選: TestCategory = TEST1 | TestCategory = TEST1 | TestCategory = TEST2 | TestCategory = TEST3 | TestCategory = TEST4

測試源規格: ** \ * deployment.dll; * database.dll

只運行TEST2,TEST3,TEST4

(UPDATE)不Database.dll enter image description here

+1

由於沒有使用過濾器,但將兩個組件,測試運行?這些測試的實現技術是什麼,mstest?什麼版本的TFS?什麼版本的VS? (請調整標籤以更加精確)。這些類別如何應用?在測試級別?課堂級別?命名空間級別? – jessehouwing

+1

你正在使用哪種構建系統? XAML或新的TFS 2015/2017類型構建? – jessehouwing

+0

假設您使用XAML構建,我無法在我身上重現您的問題。你可以檢查jessehouwing的問題,並提供更多的細節。 –

回答

0

最後,它解決了:)

所以,我做了什麼來解決這個問題,就是,改變構建過程模板。

有在該過程中的一個步驟,稱:「FindMatchingFiles」

我改變這個值作爲下面的圖像所示。 (但是,從現在開始,我必須在使用此過程模板的所有過濾器中使用「** \ *」)。此操作確保我具有完整路徑完成的程序集。

如果你有不同的解決方案,請張貼在這裏:)

特別感謝@Cece - MSFT所有支持

enter image description here

0

找到測試我在TFS 2015.3,XAML構建測試,但無法重現您的問題。我想在這裏分享我的步驟,供大家參考:

  1. 我有一些項目的解決方案,其中2個是單元測試項目(UnitTestProject1,UnitTestProject2)。

    enter image description here

  2. 在UnitTest1項目,我添加TestCategory兩個測試情況下,檢查下面的截圖:

    [TestMethod()] 
    [TestCategory("Pro")] 
    public void M1Test() 
    { 
        // 
    } 
    
    [TestMethod()] 
    [TestCategory("Dev")] 
    public void M2Test() 
    { 
        // 
    } 
    
  3. 類似第二步,在UnitTest2項目,我添加TestCategory了兩個測試的情況下,檢查下面的截圖:

    [TestMethod()] 
    [TestCategory("Pro1")] 
    public void M3Test() 
    { 
        // 
    } 
    
    [TestMethod()] 
    [TestCategory("Dev1")] 
    public void M4Test() 
    { 
        // 
    } 
    
  4. 編輯「測試用例過濾器」和「測試源規格」中生成定義像下面的截圖和隊列構建:

enter image description here

  1. 如預期的測試結果。在UnitTestProject1中只測試M1Test和M2Test,在UnitTestProject2中測試M3Test和M4Test。
+0

嗨Cece,我提出了你的建議,最初我有** \ * database.dll; ** \ *部署,我改爲* database.ddl; * deployment.dll,現在,TEST1運行良好,另一個測試不運行。 我更改爲* database.dll; ** \ * deployment.dll並給我一個錯誤: 訪問路徑'C:\ Windows \ system32 \ config \ systemprofile \ AppData \ Local \ Microsoft \ Windows \ INetCache \ Content .IE5'被拒絕 你知道會發生什麼嗎? – HLourenco

+0

* deployment.dll和* database.dll的全名是什麼?** \ * deployment.dll; ** \ * database.dll怎麼樣? –

+0

Hermes.Gold.Deployment.dll Hermes.Gold.Database.dll 這可能是流程模板上的錯誤嗎?因爲它似乎只捕獲我在測試來源規範中插入的程序集... 如何在TestSpecList中使用foreach? – HLourenco

相關問題