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). fallback culture "en"에 대해 "some_referenced_dll.resources.dll, PublicKeyToken ="이라는 위성 어셈블리를 찾을 수 없거나로드 할 수 없습니다. 이것은 일반적으로 설치 문제입니다. 응용 프로그램을 재설치하거나 수리 해보십시오.
System.Resources.MissingSatelliteAssemblyException : 명명 된 위성 어셈블리 ...
이 문제를 해결하기위한 시도에서, 나는 testsettings 파일의 배포 항목으로 some_referenced_dll.resouce.dll을 추가하지만 도움이되지 않았다 .
dll이 OUT 폴더에 복사되는 것을 볼 수 있습니다.
또한 프로젝트에 대한 참조로 some_referenced_dll.dll을 추가 한 후에도 VS 2012에서 테스트가 잘 실행됩니다.
MORE INFO : 직접에 refrence로 (예를 들어 ref_dll_2.dll) 및 전달이 다른 DLL을 사용하는 시험이 있습니다
. 이 ref_dll_2.dll은 OUT 폴더에도 있습니다.
내 테스트에서 직접 참조하지 않는 dll (some_referenced_dll.resouce.dll) 문제가 있습니다. 내 유닛 테스트는 실패한 클래스를 초기화하려고하는 일부 dev 코드를 호출합니다.
dll을 강제로로드하는 것이 합리적일까요? 그렇게 할 수있는 방법이 있습니까?