2015-05-13 36 views
1

我在Visual Studio 2013 Professional中實現了測試解決方案。我選擇了NUnit(版本2.6.4)作爲測試框架。我已經安裝了NUnit測試適配器,以便在Visual Studio中執行我的測試。一切工作正常,直到我進入一個NUnit擴展類來獲取斷言失敗消息... 在Visual Studio Test Explorer中的這個類實現之前,我的所有測試類和相關方法都已正確列出;在擴展實現後,當我重建我的解決方案,然後測試列表不再出現(測試資源管理器窗口是可見的,但是當我構建/重建我的解決方案時沒有列出)。在NUnit擴展實現後,Visual Studio測試資源管理器窗口找不到我的測試

我所有的課程都是public,每個測試班已經裝飾了[TestFixture]屬性,每個測試方法用[Test]之一。 在我的擴展類以下:

using System; 
using COLL = System.Collections.Generic; 
using NUnit.Core.Extensibility; 
using NUnit.Core; 

namespace UTDirectPLM 
{ 
[NUnitAddinAttribute(Type = ExtensionType.Core)] 
public class ExtensionToLog 
{ 
    // the wrong behaviour occurs also if I leave empty the class body. 
} 
} 

我忘了什麼?

+0

在您的演示代碼中,您沒有實現「IAddIn」接口的addin類,您是否在實際實現中這樣做? [NUnit文檔](http://www.nunit.org/index.php?p=nunitAddins&r=2.4) –

+0

是的,我有...但現在我注意到,當我建立我的解決方案時,一切都好...但NUnit拋出異常;編譯輸出是這樣的:------ ------發現測試已開始------ NUnit 1.2.0.0發現測試已啓動 異常System.InvalidCastException,異常拋出發現C:\ ... \ UnitTestProject.dll NUnit 1.2.0.0發現測試完成 ==發現測試完成:0找到(0:00:00.4271482)==' – baru

回答

1

這似乎是NUnit核心2.6.4版本中的一個錯誤。我可以用2.6.4重現它,但是使用2.6.3核心 - 即使2.6.4框架也可以工作。所以這是一種解決方法。所有我需要做的工作或不是將nunit.core.interfaces.dll更改爲2.6.3版本。 (當你實現的東西,你當然需要更改所有使用的核心dll到2.6.3版本)

由於NUnit v2不再被維護,所有的工作現在集中在NUnit 3.你可以看看進入V3,即使它仍處於測試階段(現在測試版2)。它有一個不同的[希望]更好的擴展方式。看看維基在https://github.com/nunit/nunit/wiki/Action-Attributes

+0

我會嘗試您的建議。無論如何,在過去(2-3個月前),我使用NUnit core 2.6.4版本編寫了一個擴展來記錄失敗消息,並且一切正常......我看過這個舊的解決方案,並且我注意到在過去,我使用NUnit測試適配器版本1.2.0.0,而現在NuGet數據包管理器提供2.0.0.0版本。 – baru

+0

繼yor回答這個問題... NUnit測試適配器的實際版本提供了nunit.core.interfaces.dll的版本2.6.4。 1.2.0.0 NUnit測試適配器版本提供了2.6.3版本。請注意,要在Visual Studio中執行測試,您需要測試適配器的dll,而不是位於NUnit程序文件夾內的dll ...... NUnit程序文件夾中的dll必須用於使用NUnit GUI([更多詳細信息] (http://stackoverflow.com/questions/29344903/nunit-extension-does-not-work-running-tests-through-the-nunit-gui))。 – baru

+0

要清楚:正如Terje S.所建議的,我用NUnit T.A的舊版本代替了我的問題。 nunit.core.interfaces.dll與1.2.0.0 NUnit T.A.提供的DLL一。 – baru

0

我有一個類似的問題,但原因是,當安裝NUnit NuGet軟件包時,缺少VS2013 NuGet軟件包的NUnit測試適配器。沒有消息表明這是問題。

相關問題