2012-09-22 28 views
1

我有一個標準的NUnit單元測試。處理NUnit中的任何錯誤

[TestFixture] 
    public class MyTest 
    { 
     [SetUp] 
     public virtual void Setup() 
     { 
     } 

     [TearDown] 
     public void CleanUp() 
     { 
     } 

     [Test] 
     public void Test01() 
     { 
      Assert.AreEqual(10, 10); 
     } 

     [Test] 
     public void Test02() 
     { 
      Assert.AreEqual(4, 1); 
     } 

     [Test] 
     public void Test03() 
     { 
      Assert.AreEqual(1, 51); 
     } 

     //......a huge amount of Tests 
     [Test] 
     public void TestN() 
     { 
      Assert.AreEqual(1, 1); 
     } 
} 

如您所見,這裏有很多測試。我需要做的是處理每個測試中的任何錯誤,並獲取有關錯誤而不是修改測試方法正文的信息。

所以JUnit有一個名爲TestListener,一個接口,它允許以處理任何測試誤差,看到錯誤消息,請參閱該測試的名稱等

我沒有找到NUnit類似的東西。它存在嗎?還是有辦法做到這一點?

回答

3

這聽起來像你可能想EventListeners

事件偵聽器能夠通常由記錄某種信息,以應對發生在試運行過程中的事件。請注意,EventListeners關於測試執行異步調用,並且不能影響測試的實際執行。

這聽起來像你有興趣在這個方法:

void TestFinished(TestResult result); 

(順便說一句,這似乎有些奇怪,我認爲這不正常使用.NET事件提供在抽象類中沒有操作接口的實現,但我們去......)

+0

直到Jon Skeet提到它時,該接口才存在。 – Alexandre

+1

宇宙創造了界面的恐懼,因爲如果喬恩Skeet實際上是錯誤的它會崩潰。 – EricSchaefer