2012-06-01 196 views
8

我在Visual Studio中有一個非常令人沮喪的問題。我正在使用Resharper,並在Nunit中編寫測試。Visual Studio調試問題與Resharper/Nunit

如果我設置了一個斷點,它確實受到了打擊,但是「跳入/跳過」和「繼續」不起作用,並且測試從未結束。即使我設置了兩個破發點,繼續不會達到第二個。如果我調試一個沒有斷點的測試,它會很好地完成。

而且,經常和間歇性,當我試圖通過設置斷點調試測試,我無法評價變量的內容,而是看到這條消息:

Function evaluation disabled because a previous function evaluation timed out. You must continue execution to reenable function evaluation.

我使用Visual Studio 2010.

請讓我知道,如果你有什麼想看什麼...我已經搜遍網絡,但沒有任何運氣。

如果需要,歡迎提供進一步的信息。

編輯 - 方法的實施

測試:

[Test] 
public void OneRowAddedToSourceData() { 
    //Factory just returns System.Data.DataTable with correct columns. 
    var sourceData = new DataTableContainerFactory().GetTargetTableContainer(DataTypeNames.EventSharedEnd); 

    //GetRow just returns a populated row. 
    var row = GetRow(sourceData, 123456, 123,60, 31); 

    sourceData.DataTable.Rows.Add(row); 
    Assert.AreEqual(1, sourceData.DataTable.Rows.Count); 
} 

當我設置的斷言語句一個破發點,並試圖評估數據表,我得到了這個問題。

UPDATE 2! 因此,我將這個問題縮小到Resharper調試。我將測試類更改爲MSTest而不是NUnit,但在使用Resharper進行調試時仍然遇到了上述問題。但是,當我使用內置的VS MSTest測試運行器運行測試時,所有問題都消失了!

現在我更喜歡使用NUnit和Resharper,所以如果有人能夠指出我將允許Resharper正確調試的設置,我會非常高興!

+0

我已經看到你到底在說什麼。這不是Resharper/Nunit相關的。當您嘗試評估這些變量時會發生這種情況。當我嘗試展開一個'List <>'或類似的東西時('Dictionary <,>'),我會看到它。如果您可以避免導致該消息的評估,則可以繼續調試。現在,我只知道,當我收到錯誤消息時,我停止調試並重新啓動,然後嘗試不評估導致問題的變量。願意知道如何防止這種情況發生。 –

+0

謝謝喬爾,這是一些工作,但我經常試圖正確評估這些變量。非常令人沮喪!我只希望有人能幫到你! –

+0

您正在評估的功能是否可能持續循環?你能提供一個簡單的例子來說明你在看什麼類型的測試? –

回答

5

我有一個可能的解決方案,雖然有一個警告。做了一些搜索並跑過this blog item。它建議從Tools->Options->Debugging->General關閉Enable property evaluation and other implicit function calls。我把它關掉了,現在我可以進入之前導致這個問題的項目。

需要注意的是,您以前用於查看自動評估的所有屬性現在都不顯示。相反,它聲明Implicit function evaluation is turned off by user.所有你需要做的是點擊屬性上的刷新按鈕,你可以看到值,但我還沒有決定這是否是我願意做出的折衷。

+0

試過這個,但遺憾的是當我點擊刷新按鈕時,我仍然得到錯誤。 –

+0

我會猜測我的測試與簡單的列表是原因。更新評估更少。快速的問題:你正在編譯.NET 4.0嗎?我不是在.Net 4.0中複製我的問題(主要在.Net 3.5中工作)。懷疑與它有關係(至少在我的結尾) –

+0

是的,從3.5錯誤也發生的項目升級... –

0

我找到了解決這個問題的方法!

檢查選項調試 - >選項,設置>通用> enable屬性評估和其他隱函數調用,並取消對對象的選項呼叫字符串轉換函數變量窗口

這個工作對我來說!