2011-01-12 221 views
16

我無法在我的項目中使用Resharper-Debug選項來調試我的測試。我看到很多人提出這個問題,但沒有得到解決我的問題的堅實建議。 奇怪的是,如果我創建一個示例項目並編寫一個簡單的單元測試,我就能夠調試它,而不會有任何問題。但是,當我嘗試在當前項目中執行此操作時,它只是拋出一個對話框「無法啓動調試」。我已經跟我的同齡人檢查這一點,他們面臨的簡化版,這個問題:(無法使用Resharper調試測試 - 無法啓動調試器

我也沒有任何問題,運行測試一段時間。

這是一個XP的機器和以下是該版本的ReSharper的:

JetBrains ReSharper 5.1 C# Edition
Build 5.1.1753.4 on 2010-10-15T15:51:30

Licensed to: XXXXXXX
Plugins: none.
Visual Studio 9.0.21022.8.

Copyright © 2003–2011 JetBrains s.r.o.. All rights reserved.

感謝, -M

+0

「強制測試,在32位進程中運行」? – Jay 2011-01-12 15:59:42

+1

那麼你的環境和你的同齡人有什麼不同?根據本地應用程序數據,JetBrains是否有任何錯誤日誌? – Rup 2011-01-12 17:50:08

回答

21

我偶爾會遇到無法使用Resharper調試圖標啓動的測試(由於模擬對象或32 vs 64位dll)。一個適用於我的解決方案是添加一個明確的調用來啓動調試器在測試中

Debugger.Launch(); 

然後就像平常一樣運行測試。當代碼執行打那行,你得到一個安全彈出窗口(挑是)

alt text

然後一個Visual Studio選擇彈出(選擇你當前運行Visual Studio)。

alt text

你會在調試模式下的位置中添加Debugger.Launch()線下降到您的代碼。

+0

解決了我的調試器排序只有一半的問題:/很奇怪。謝謝 – 2013-12-12 15:58:04

20

可能使用的人絆倒在這裏,特別是,我遇到了錯誤:

--------------------------- 
ReSharper – Unit Testing 
--------------------------- 
Cannot launch debugger. 

Error code: 89710016 

Error message: 0 

在VS 2013專業版,使用R#8.2的時候嘗試調試NUnit的測試時。

finding this link後,通過改變NUnit的類庫項目86(Properties -> Build -> Platform Target : x86

1

,而不是更改項目的生成屬性是x86(這可能會影響其他團隊成員,如果在一個團隊中工作解決問題),您可以告訴Resharper以32位過程運行單元測試。

Resharper -> Options -> Tools -> Unit Testing ->General -> Default Platform Architecture

設置這是您使用的單元測試框架