[英]C# Unit Tests and MSTest 14.0 command-line options for Platform/Arch
[英]Mstest unit tests fail from command line
我編寫了一個單元測試,它使用testsettings文件在OUT文件夾中部署一些引用的dll。 我使用這個命令運行我的單元測試。
"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\MSTest.exe"
"/testcontainer:C:\Unittests\unit_test.dll"
"/runconfig:C:\Unittests\unit_test_settings.testsettings"
"/resultsfile:C:\Unittests\unit_test_results.trx"
我的單元測試中的一些測試運行正常,但有些測試失敗並出現以下錯誤。
對象初始化失敗(ISupportInitialize.EndInit)。 名為“some_referenced_dll.resources.dll,PublicKeyToken =”的后備文化“en”的附屬程序集無法找到或無法加載。 這通常是一個設置問題。 請考慮重新安裝或修復該應用程序。
System.Resources.MissingSatelliteAssemblyException:名為...的附屬程序集
為了解決這個問題,我在testsettings文件中添加了some_referenced_dll.resouce.dll作為部署項,但這沒有幫助。
我可以看到dll被復制到OUT文件夾中。
在我添加some_referenced_dll.dll作為項目的引用之后,測試在VS 2012中運行良好。
更多信息:
有些測試直接使用其他dll作為參考(比如ref_dll_2.dll)和傳遞。 此ref_dll_2.dll也位於OUT文件夾中。
我遇到的問題是dll(some_referenced_dll.resouce.dll)沒有直接從我的測試中引用。 我的單元測試調用了一些dev代碼,它試圖初始化一個失敗的類。
強行加載dll會有意義嗎? 有沒有辦法做到這一點?
好的,所以我終於解決了這個問題。 在此記錄完整性。
問題是我的MSTEST單元測試找不到資源/附屬程序集(some_referenced_dll.resources.dll),因此拋出異常。 我使用deploymentItem屬性來部署dll(some_referenced_dll.dll)但不是資源dll。 解決方案是使用deploymentItem並部署資源dll(some_referenced_dll.resources.dll)。
Bill Wang在這個帖子中提供了一個很好的答案,幫助解決了這個問題。 對於一個非常惱人的問題,這是一個簡單的解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.