2016-03-04 54 views
1

我有這個問題與Visual Studio的測試資源管理器:能不能找到一種方法來選擇測試,我需要運行:組測試類名和方法名

我有很多用TestCaseSource作爲測試瀏覽器在許多測試中翻譯的輸入數據進行測試,因此對於單一測試方法,我可以有20-30個條目。當我開始在我的課堂上進行多項測試時,選擇單一方法的所有條目是一種痛苦

我知道我可以使用Traits,但它們不是呈現爲層次結構,也不是在類別分組下嵌套。

現在我有僅2在一個類中的方法,這是結果:

Test list

,其中,選擇所有情況下爲一個單一的方法是痛苦的,傾斜的圖像的在端部的情況時,我可以甚至這樣的20個方法

是否有任何方法按項目對測試進行分組,然後按類,然後按方法進行分組,而無需爲每個測試編寫一個類?

完整的信息,這是我的代碼

public class TestCase 
    { 
     public static IEnumerable TestCasesIsNumerico 
     { 
      get 
      { 
       yield return new TestCaseData("12").Returns(true); 
       yield return new TestCaseData("123456789").Returns(true); 
       yield return new TestCaseData("1,2").Returns(true); 
       yield return new TestCaseData("1.2").Returns(true);    
       yield return new TestCaseData("1.000,12").Returns(true); 
       yield return new TestCaseData("1,000.12").Returns(true); 
       yield return new TestCaseData("1.000.000").Returns(true); 
       yield return new TestCaseData("1,000,000").Returns(true); 
       yield return new TestCaseData("1.000.000.000.000").Returns(true); 
       yield return new TestCaseData("1,000,000,000,000").Returns(true); 
       yield return new TestCaseData("1.000.000,00").Returns(true); 
       yield return new TestCaseData("1,000,000.00").Returns(true); 
       yield return new TestCaseData("a").Returns(false); 
       yield return new TestCaseData("a120").Returns(false); 
       yield return new TestCaseData("12a0").Returns(false); 
       yield return new TestCaseData("120a").Returns(false); 
       yield return new TestCaseData("01").Returns(false); 
       yield return new TestCaseData("1.1.1").Returns(false); 
       yield return new TestCaseData("1,1,1").Returns(false); 
       yield return new TestCaseData("1.000.12").Returns(false); 
       yield return new TestCaseData("1,000,12").Returns(false); 
      } 
     } 

     public static IEnumerable TestCasesValoreNumero 
     { 
      get 
      { 
       yield return new TestCaseData("12").Returns(12); 
       yield return new TestCaseData("123456789").Returns(123456789); 
       yield return new TestCaseData("1,2").Returns(1.2); 
       yield return new TestCaseData("1.2").Returns(1.2); 
       yield return new TestCaseData("1.000,12").Returns(1000.12); 
       yield return new TestCaseData("1,000.12").Returns(1000.12); 
       yield return new TestCaseData("1.000.000").Returns(1000000); 
       yield return new TestCaseData("1,000,000").Returns(1000000); 
       yield return new TestCaseData("1.000.000.000.000").Returns(1000000000000); 
       yield return new TestCaseData("1,000,000,000,000").Returns(1000000000000); 
       yield return new TestCaseData("1.000.000,12").Returns(1000000.12); 
       yield return new TestCaseData("1,000,000.12").Returns(1000000.12); 
      } 
     } 
    } 

    [TestFixture] 
    public class UtilitaTests 
    { 
     [Test, TestCaseSource(typeof(TestCase), "TestCasesIsNumerico")] 
     public bool isValoreNumerico_RitornaVeroSeNumero(object o) 
     { 
      decimal d; 
      return Utilita.tryValoreNumerico(o, out d); 
     } 


     [Category("UtilitaTests-isValoreNumerico_RitornaNumeroCorretto")] 
     public decimal isValoreNumerico_RitornaNumeroCorretto(object o) 
     { 
      decimal d; 
      Utilita.tryValoreNumerico(o, out d); 
      return d; 
     } 
    } 

回答

4

不幸的是,這是不可能超越的,你已經找到特性(類別),測試集,類等等的頂層分組。

這是Visual Studio Test Explorer的限制,而不是NUnit。 NUnit適配器僅將信息提供給測試窗口,但它不控制任何UI,因此NUnit團隊無法改進其工作方式。

我會建議前往Visual Studio UserVoice並投票或進入一個問題,給測試瀏覽器一些愛。

你已經知道了,但有些人並沒有意識到你可以在測試瀏覽器窗口中更改測試的分組。爲此,請右鍵單擊測試中的任何節點並選擇分組依據。

Visual Studio Test Explorer

+0

是的,我儘量分組,但只能有類或特徵,我試着甚至加入了特質與他們的類名和方法名的每個測試,但對我的口味太多魔術字符串。沒有可以替代測試瀏覽器的插件嗎? –

+0

Resharper有一個很好的測試跑步者,可以和NUnit一起工作,但它有點貴。 –