У нас есть подмножество модульных тестов, которые до недавнего времени всегда выполнялись через Visual Studio.Сейчас я работаю над настройкой непрерывной интеграции, которая будет запускать тесты.Все тесты проходят при запуске через Visual Studio, но когда я пытаюсь запустить их из командной строки, используя mstest, они терпят неудачу с «TypeInitializationException», который говорит, что он не может найти файл dll для типа.
System.TypeInitializationException: The type initializer for foo.bar_Accessor' threw an exception.
---> System.IO.FileNotFoundException: Could not load file or assembly 'foo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.
The system cannot find the file specified.Assembly manager loaded from:
c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll
Рассматриваемая dll является ссылкой на проект в модульном тестовом проекте.Существует также ссылка на тест, который создает версию класса foo.bar_Accesor.
Я заметил, что когда тесты запускаются в Visual Studio, создается папка "Coverage _timestamp", которая содержит IN и OUT.папка.Папка OUT содержит, помимо прочего, foo.dll и foo_accesor.dll.
Когда тесты запускаются из командной строки, создается папка «username _timestamp», которая содержит только папку OUT.Папка OUT содержит, помимо прочего, файл foo_accesor.dll, но не файл foo.dll, указанный в сообщении об ошибке.