我有一個Visual Studio解決方案,我使用MSTest進行單元測試,並且想使用ReSharper Testrunner,因爲我認爲Visual Studio Test Explorer非常痛苦。我的整個解決方案都是爲x64構建的,因爲我有一些依賴程序集專門針對x64編譯而不適用於x86。ReSharper Testrunner在x64上使用BadImageFormatException失敗
我的單元測試在VS Test Explorer中運行良好,但在ReSharper Testrunner中失敗。
以下異常被拋出,它擊中單元測試的第一行之前的權利:
Unable to get type xxx.xxx.xxx. Error: System.BadImageFormatException: Die Datei oder Assembly "file:///D:\path\to\unit\test\project\bin\Debug\xxx.xxx.xxx.dll" oder eine Abhängigkeit davon wurde nicht gefunden. Es wurde versucht, eine Datei mit einem falschen Format zu laden.
很抱歉的例外,在德國之中。這只是一個'典型的'BadImageFormatException其中xxx.xxx.xxx是我單元測試項目的類型。 堆棧跟蹤表明,異常正在從
Microsoft.VisualStudio.TestPlatform.MSTestFramework.TypeCache.LoadType(String typeName, String assemblyName)
我知道有關於計算器已經有很多類似的問題拋出,但我已經嘗試過每一種可能的解決辦法,我發現(無任何影響),因此,我認爲我的問題在別的地方。
是我的嘗試,到目前爲止,檢查:
- 我雙重檢查在我的解決方案,每一個項目被編譯到x64(甚至在釋放模式) - everyhting似乎罰款
- 默認處理器架構MSTest顯式設置爲x64(可能這就是爲什麼它與內置的測試資源管理器配合使用)
- 儘管應該根據項目平臺來決定,但我明確將平臺設置爲ReSharper Testrunner x64
- 我甚至將ReSharper的單元測試設置修改爲force在64位處理中執行單元測試
- 在ReSharper設置中禁用了組件的Shadow-Copy(僅僅因爲我非常沮喪,現在,並切換到審判&錯誤模式就在我開始創建這個問題)
有刺激性的測試運行罰款與測試資源管理器,但不與ReSharper的,雖然雙方已設置爲64位。我是否缺少需要修改的特定設置?或者,當將ReSharper與MSTest結合使用時,他們會遇到一些已知問題嗎?我可能也會考慮使用nUnit,但我需要修改所有測試,所以最好還是留在MSTest中。
Additionaly有關版本和東西的一些信息(不知道它可能會有所幫助):
- 的Visual Studio 2013高級版更新v12.0.30110.00 1
- 的.NET Framework 4.5在解決方案中的每個項目上
- ReSharper 8.2 C#Edition,Build 8.2.0。2160