2012-08-01 11 views
14

我一直在使用NUnit的單元測試,筆試和測試結構以類似的方式在Phil Haack's postReSharper的單元測試亞軍給人尚無定論外部類

namespace MyNamespace 
{ 
    [TestFixture] 
    public class ClassToTest 
    { 
     [TestFixture] 
     public class MethodToTest 
     { 
      [Test] 
      public void ThrowsArgumentNullException_OnNullIndex() 
      { 
       ... 
      } 

      .. more tests for the method .. 
     } 

     [TestFixture] 
     public class AnotherMethodToTest 
     { 
      [Test] 
      public void ThrowsArgumentNullException_OnNullIndex() 
      { 
       ... 
      } 

      .. more tests for the method .. 
     } 
    } 
} 

我的問題是,我得到定論的外用於對單元測試進行分組的類。我已經嘗試過在外部和/或內部階層有[TestFixture],但它總是給我不確定的。

我認爲正確的行爲應該是顯示來自內部類測試的單元測試狀態。有任何想法嗎?

Inconclusive is appearing for the outer class

更新

一個醜陋修復似乎是創建一個虛擬測試外部類,然後把屬性Ignore就可以了。

[Test, Ignore] 
public void DummyTest() 
{ 
    Assert.IsTrue(true); 
} 

更新2

Channs &韋恩是正確的,外類只是用於分組,從類,以便更改爲命名空間是最好的解決方案。

+0

我最近有一個類似的東西,這只是因爲我創建了一個空測試。你有沒有得到任何空的測試? – 2012-08-01 13:27:57

回答

7

你的外部類組建議用名稱空間替換它。

namespace MyNamespace.ClassToTest 
{ 
    ... 
} 
+0

謝謝!這是完全正確的解決方案。你比韋恩稍微快一點,所以我會把這個標記爲答案。 – Tx3 2012-08-01 13:41:01

+0

我有同樣的問題,但我需要使用基類。此解決方案是否適用? – thepaulpage 2014-06-06 20:12:18

+0

@thepaulpage - 對不起,回覆晚了。你有沒有找到答案?你的意思是說,當你只對子類進行單元測試時,R#顯示的測試結果對基類沒有結果? – Channs 2014-06-21 11:49:12

6

您可能有[TestFixture]沒有[Test] s - 也許外部類沒有任何自己的測試?在這種情況下,爲什麼不使用命名空間?

+1

或者[Test]方法可能沒有標記爲公開 – 2013-03-15 13:03:22

+0

這會讓我瘋狂......幸運的是我堆棧溢出了! – BenDundee 2013-09-27 14:18:57

+0

@ mcl的建議解決了我的問題。 +1! – Watusimoto 2014-10-17 23:58:08

1

只是一種猜測,在類的屬性導致你的類爲TestClass的處理,但也有在課堂上沒有測試它的自我使我們尚無定論:只有

[TestFixture]  
public class ClassToTest