2013-12-18 54 views
6

我有一個控制檯應用程序,並且向該項目添加了一個類庫解決方案以容納我所有的單元測試。Nunit未在測試項目類庫(VS2012)中觸發斷點

除了在運行我的測試時斷點不會被擊中這一事實,所有工作都很好。

如果我運行整個應用程序,控制檯應用程序中的斷點會正常工作。

如果我運行測試,測試類和控制檯應用程序中的斷點將被完全忽略。

我看到另一篇文章說去調試>開始新實例,但因爲它是一個類庫我不能這樣做。我應該在不同的項目類型中使用測試類嗎?

我正在使用Nunit,VS2012和NUnit跑步者。

我有幾個測試失敗,我無法弄清楚爲什麼,我真的需要能夠通過代碼。

任何幫助,非常感謝。

回答

15

相反運行測試中,嘗試調試你的測試

enter image description here

+0

謝謝!你只是讓我的一天更輕鬆:) – Guerrilla

+0

hhahaa,歡迎大家 – Leo

1

我的測試代碼在.NET 4.5編譯並使用Nunit2.6.1。

如果我只做了測試項目的調試選項 - >啓動外部程序 - > nunit-86x.exe,並將.dll名稱作爲命令行參數,則斷點不會受到影響。

這從Nunit EXE開始,但沒有斷點。

1)爲了解決這個去

C:\Program Files (x86)\NUnit 2.6.1\bin 

2)搜索nunit-x86.exe.config,或者如果您打算使用nunit.exe然後打開nunit.exe.config

3)在記事本中打開細並搜索線

<startup useLegacyV2RuntimeActivationPolicy="true"> 
<!-- Comment out the next line to force use of .NET 4.0 --> 
<supportedRuntime version="v2.0.50727" /> 
<supportedRuntime version="v4.0.30319" /> 
</startup> 

4)取下支持的運行時的版本= V2.0.50727的行,並通過在管理員打開記事本文件保存(在管理員模式下打開通過右鍵單擊並以管理員身份打開)。

5)重建項目運行你的測試代碼的調試會話。斷點將被擊中。

0

對於有此問題的其他人:請檢查您是否在發佈模式下構建。

我有NUnit 3.7.0,dotnet核心1.0和VS 2017這個問題。事實證明,我正在建立在發佈模式。在調試模式下構建解決了這個問題。