2012-07-02 49 views
8

注意:我正在爲此項目使用TestDriven.NET 3.0.2749和NUnit 2.6.0.12051。使用TestDriven.NET和NUnit在測試類中運行所有測試

我已經安裝了TestDriven.NET和NUnit,並試圖讓TestDriven.NET通過右鍵單擊上下文菜單運行測試類中的所有測試。

從TestDriven.NET文檔:

如果選擇代碼編輯器窗口中,測試(一個或多個)執行將由符的位置確定;通過在測試方法中的任意位置右鍵單擊並選擇「運行測試」來執行單個測試,如圖2所示;在一個測試夾具中的所有測試都是通過右鍵單擊一個類(但不包括任何方法)並選擇'運行測試(S)'來執行的;命名空間中的所有測試都是通過右鍵單擊命名空間並選擇「運行測試」來執行的。

我可以用鼠標右鍵單擊快捷菜單和NUnit的GUI亞軍將成功運行所有測試給定類成功運行特定的測試方法,但我想用快速訪問TestDriven.NET提供這個任務,而我正在開發。

我收到以下錯誤,當我放置插入符的測試方法以外:

目標類型不包含從一個已知的測試框架或「主」方法測試。

更新1:添加示例代碼。

示例代碼進行測試:

namespace TDDN.Framework 
{ 
    public class ExampleClass 
    { 
     public ExampleClass() { } 

     public Int32 Add(Int32 x, Int32 y) 
     { 
      return x + y; 
     } 

     public Int32 Subtract(Int32 x, Int32 y) 
     { 
      return x - y; 
     } 
    } 
} 

單元測試:使用TestDriven.NET和NUnit(3.0.2749和2.6的相同版本時

using NUnit.Framework; 
using TDDN.Framework; 

namespace TDDN.UnitTests 
{ 
    [TestFixture] // Cursor caret placed here results in error above. 
    public class ExampleClassTests 
    { 
     [Test] // Cursor caret placed here works. 
     public void Add_SumTwoIntegers_SumReturned() 
     { 
      ExampleClass exampleClass = new ExampleClass(); 

      Assert.AreEqual(10, exampleClass.Add(5, 5)); 
     } 

     [Test] // Cursor caret placed here works also. 
     public void Subtract_SubtractTwoIntegers_DifferenceReturned() 
     { 
      ExampleClass exampleClass = new ExampleClass(); 

      Assert.AreEqual(5, exampleClass.Subtract(10, 5)); 
     } 
    } 
} 
+0

請發佈您的代碼,因爲它應該工作...也許你的使用屬性有問題。 – seldary

回答

16

我只是遇到了這個確切的問題.0.12051)。

問題是TestDriven.NET 3.0不支持NUnit 2.6,所以它不會識別NUnit [Test]和[TestFixture]屬性。因此,TestDriven.NET仍然會運行你的單獨的測試功能,但作爲Ad Hoc(測試時顯示在通過/失敗/跳過消息的末尾)。

我能夠通過安裝更新​​版本的TestDriven.NET(3.3 Beta 2)來解決該問題,該版本完全支持NUnit 2.6(請參閱:https://groups.google.com/d/msg/nunit-discuss/pTCDx2_L8jU/TlpULzE36wEJ)現在您應該能夠在夾具中運行所有測試一次,並看到(NUnit 2.6.0)在測試輸出結束時顯示。

+0

我可以確認您提出的解決方案也適用於我。我安裝了TestDriven.NET 3.4.2784 Beta,並且能夠按照預期將光標脫字符放在'[TestFixture]'行上時運行所有測試。謝謝,克里斯蒂安。 – Noren

0

我在脫字號展示位置上的錯誤消息和類似行爲完全相同。

我已經有了最新版本的TestDriven.Net。

我的問題是,我的新TestClass沒有指定類別,它被過濾掉(工具 - > TestDriven.Net - >常規 - >類別 - >在類別中包括測試)。

所以只需指定正確的類別解決了我的問題。

這是相同的錯誤消息,但是不同的問題和解決方案。