2013-05-11 145 views
7

我正在測試一個相當大的項目(C#,VS2012),並且需要在測試層次結構中安排我的單元測試(例如:現在我有43個測試用例)。我確實需要層次結構。Visual Studio 2012測試類別層次結構(測試瀏覽器)

我已經定義了測試類別,並且測試瀏覽器按特徵顯示測試用例。我有這樣的類別(一個測試有幾類)

  • TestCase01:MainTestType,SubTestType,SubsubTestType
  • ...
  • TestCase10:MainTestType,SubTestType,SubsubTestType
  • TestCase11:MainTestType,SubTestType2 ,SubsubTestType2
  • ...
  • TestCase15:MainTestType,SubTestType2,SubsubTestType2

定義是這樣的:

[TestMethod] 
    [TestCategory("MainTestType")] 
    [TestCategory("SubTestType")] 
    [TestCategory("SubsubTestType")] 
    public void MyTestCase() 
    { /* etc. */ 

但測試資源管理器將顯示下一個:

  • MainTestType:具有類別MainTestType所有測試
  • SubTestType:具有類別SubTestType
  • 等所有測試..

所以我真的很想念層次結構。我嘗試過「Cat1 \ Cat2 \ Cat3」或甚至使用/。但沒有層次顯示。你知道該怎麼做,或者一個可以爲我做的免費插件嗎?

我還需要這些類型的分類,因爲我們經常從命令行運行測試,並且mstest.exe可以運行一個類別的測試(例如所有MainTestType或SubTestType)。 (我堅持mstest,因爲一半的團隊使用vs2010)。但是對於vs2012來說,解決方案已經足夠了。

預先感謝您。

+1

您是否嘗試使用[播放列表](http://blogs.msdn.com/b/visualstudioalm/archive/2013/01/30/first-ctp-for-visual-studio-update-2.aspx#播放列表)從VS Update 2?我不知道爲這些播放列表保留多麼容易,但是如果這對你真的有幫助,你可以試試。 – outcoldman 2013-05-13 18:57:48

+0

一個知道播放列表,但我正在尋找分層catogerization(也許是一個插件)。但也許這是不可能的,我只是好奇 – cseppento 2013-05-13 20:22:48

+0

我以前沒有看到它。如果R#單元測試瀏覽器可以執行此操作,您可以嘗試使用R#,但我不認爲它可以。 – outcoldman 2013-05-13 22:52:23

回答

6

正如我搜索目前不支持,我做下一個解決方法:

  • 建設項目
  • 運行MSText所有測試 - >帶有.trx輸出
  • 簡單的WinForms/WPF程序,其解析帶有.trx,獲取測試用例並將它們顯示在樹視圖
  • 現在我們可以運行從本申請選定節點MSTEST - >創建帶有.trx輸出(其可以在VS被打開)

我使用.trx,因爲這樣我不必解析程序集,mstest.exe就可以做到這一點。 測試類別由這樣:

[TestCategory("MainTestType")] 
[TestCategory("MainTestType/SubTestType")] 
[TestCategory("MainTestType/SubTestType/SubsubTestType")] 

所以是很簡單,只有一個二進制和開發人員可以使用太的解決方法。播放列表的問題是它們既不是分層的。

+3

您是否可以分享您的實用工具,例如:在GitHub上? – 2013-07-23 21:47:38

1

測試瀏覽器僅顯示TestFilter/InnerTests佈局後面的組。

新測試資源管理器選項卡是一個通用容器。使用特定的適配器/插件/插件,您可以將其他測試框架(NUnit,xUnit,Qunit,...)集成到測試資源管理器中......但這些適配器必須遵循測試資源管理器界面。

因此,它不是由本機支持的測試瀏覽器選項卡,我沒有在過去找到擴展測試瀏覽器選項卡的方式。

也許另一個測試框架將允許您有一個層次結構,但這將在另一個自定義選項卡和另一個屬性(TestCategory是一個MSTest屬性)。

只是爲了信息,您可以阿洛斯結合的測試資源管理器窗口性狀這樣

Trait:"MainTestType1" Trait:"SubTestType3" 
+0

我知道這一點,我正在尋找等級組織(可視化) – cseppento 2013-05-17 11:41:59

+0

正如我所說的,在本機測試資源管理器選項卡中沒有可擴展性點。它僅支持分組和過濾。 – Cybermaxs 2013-05-17 11:47:43

+0

好的,那麼沒有答案,plase關閉線程(如果sy可以) – cseppento 2013-05-17 15:53:04

1

對於VS2010使用分組,可以在Test List Editor打開.vsmdi文件。

至於VS2012:

的Visual Studio 2012更新1 http://www.microsoft.com/visualstudio/eng/visual-studio-update添加了增強,以支持兩個分組和由項目和性狀(類別)過濾。這些功能的使用是在這個博客帖子詳細,http://blogs.msdn.com/b/visualstudioalm/archive/2012/11/09/how-to-manage-unit-tests-in-visual-studio-2012-update-1-part-1-using-traits-in-the-unit-test-explorer.aspx

集團和類過濾器完成,將在更新2

我建議你到您的類別移至命名空間,這樣你就能夠在FullClassName列的TestView窗口中查看平面層次結構。

+0

我知道這一點,我正在尋找等級組織(可視化) – cseppento 2013-05-17 11:03:51

0

您可以通過將您的2級特質與前兩個級別的值進行連接來作弊。所以如果1級是動物,2級是哺乳動物,你可以有一個特徵「Animal.Mammal」。在測試資源管理器中,您將獲得Level1 [Animal]的節點,另一個用於Level1 [Plant],然後用於Level2 [Animal.Tiger]。我相信過濾器支持子串匹配,所以這是對它進行排序的一種方法。你仍然沒有得到樹視圖(儘管如果你被綁定並確定你可以嘗試擴展ascii藝術管道字符,如舊的DOS樹命令)。

你還有一個問題,就是你不能合併不同的特徵(這樣所有的鳥都會在列表中一直向下)。

另一方面,強制一個層次結構,同時允許n元組的特徵將是尷尬的。它將不得不限制物品位於層次結構頂部的多條路徑中,檢測並報告週期,在現在有的地方使用樹形控制(或與之配合)。此外,當您重構代碼並希望保持測試並行安排時,過多的現有結構可能會導致頭痛。