我已經編寫了一個單元測試,它使用testsettings文件在OUT文件夾中部署一些引用的dll。我使用這個命令運行我的單元測試。Mstest單元測試從命令行失敗
"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 =」for fallback culture「en」的衛星程序集無法找到或無法加載。這通常是一個設置問題。請考慮重新安裝或修復應用程序。
System.Resources.MissingSatelliteAssemblyException:命名的衛星總裝...
在試圖解決這個問題,我加入了some_referenced_dll.resouce.dll作爲testsettings文件部署項目,但沒有幫助。
我可以看到dll被複制到OUT文件夾中。
此外,在將some_referenced_dll.dll作爲項目的引用添加後,測試在VS 2012中運行良好。
更多信息:
但是也有一些使用一些其他的DLL作爲refrence直接(比如ref_dll_2.dll)和傳球測試。這個ref_dll_2.dll也在OUT文件夾中。
我面臨的問題與dll(some_referenced_dll.resouce.dll)不直接引用我的測試。我的單元測試調用了一些開發代碼,它試圖初始化失敗的類。
強制加載dll會有意義嗎?有沒有辦法做到這一點?