我已经编写了一个单元测试,它使用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会有意义吗?有没有办法做到这一点?