2011-04-25 77 views
4

當使用「在解決方案中運行所有測試」或「運行選中的測試」時,出現以下錯誤,但是如果使用「debug checked tests」,它們運行正常。mstest - 無法獲得類型錯誤

無法獲取類型TestDataLayer.TestPatientDAO,TestDataLayer,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null。錯誤:System.TypeLoadException:無法從程序集'DomainLayer,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'加載類型'DomainLayer.BaseEntity'。

DomainLayer.BaseEntity是一個抽象類。

再次刪除並添加對DomainLayer的引用沒有幫助。

卸載和加載TestDataLayer或DomainLayer沒有幫助。

編輯: 刪除和添加代碼覆蓋率解決了這個問題(WTF)

回答

8

添加作爲一個答案,以幫助別人發現了一個可能的解決了這個問題:

按myAces,我得到一個TypeLoadException時在Visual Studio 2010中運行MSTest單元測試。調試測試將毫無問題地完成,通過Resharper測試運行測試會毫無問題地完成。

和myAces一樣,代碼覆蓋率是問題所在。要解決我執行以下操作:

測試菜單 - >編輯測試設置 - >本地

數據和Dianostics - >取消選中的代碼覆蓋率選項 - >應用&關閉

然後再應用代碼覆蓋要求程序集和一切工作正常。

+0

thx提示 – myAces 2011-05-19 14:17:57

+0

奇怪的是似乎比http://stackoverflow.com/a/8824250/934618 :) – 2012-10-16 13:37:57

+0

謝謝灰!雖然我使用的是VS 2012,但取消選中測試(菜單) - >測試設置 - >($ SolutionPath)\ licaltestrun.testrunco​​nfig解決了這個問題。 – DiligentKarma 2015-09-12 02:48:26