簡體   English   中英

Mstest單元測試從命令行失敗

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM