ReSharper的我有一個奇怪的問題出現,當我運行VS2012我的單元測試。我正在使用NUnit並使用ReSharper運行它們,並且所有測試都在運行。但是,當我的同事們進行的測試,他們中的一些不那麼他們所使用的測試資源管理器與擴展NUnit測試適配器(Beta 3中)v0.95.2(http://visualstudiogallery.msdn.microsoft.com/6ab922d0-21c0-4f06-ab5f-4ecd1fe7175d)有ReSharper的。然而,有了這個擴展,一些測試失敗了。單元測試失敗,NUnit測試適配器,但不與VS2012
失敗的具體代碼如下:
public void Clear()
{
this.Items.ForEach(s => removeItem(s));
}
private bool removeItem(SequenceFlow item)
{
int i = this.Items.IndexOf(item);
if (i == -1)
return false;
this.Items.RemoveAt(i);
return true;
}
唯一的例外是:
System.InvalidOperationException : Collection was modified; enumeration operation may not execute.
Result StackTrace:
at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource)
at System.Collections.Generic.List`1.ForEach(Action`1 action)
現在,我不是尋找一個回答爲什麼我得到這個例外,當然我可以理解爲什麼它失敗了。但我不明白爲什麼測試失敗與測試Exporer但不是使用ReSharper時。爲什麼我會得到不同的測試行爲?
我用程序Ildasm.exe以查看是否爲兩種情況下進行測試時的代碼被編譯以不同,但IL-代碼是相同的。
測試也運行期間提交我們沒有任何錯誤團隊市的服務器上。
此外,調試測試時,我通過NUnit測試適配器進行調試時,但在調試的時候,並通過與ReSharper的,也不例外,在所有的代碼步進得到相同的異常。
其中該碼是從叫什麼名字? TestMethod,SetUp,構造函數? – citizenmatt
從TestMethod的,當我在「演戲」的單元測試。 –
我看不出爲什麼會失敗。你能得到一個我可以下載並看看的repro項目嗎?把它放在要點上,或者什麼? – citizenmatt