Использование vstest.consol.exe для запуска модульных тестов Moq

Я использовал Moq в своих модульных тестах в Visual Studio 2013. Мне нужно запустить тестовые примеры в командной строке с помощью vstest.console.exe.

При попытке это сделать я получаю такую ​​ошибку:

Ошибка: возникла исключительная ситуация при вызове исполнителя «executor: // mstestadapter / v1»: не удалось загрузить файл или сборку «Codex.Repository, verion = 1.0.0.0, Clture-нейтральный, PublicKeyToken = null» или одну из его зависимостей. Система не может найти указанный файл.

Это команда, которую я использую для запуска тестов:

vstest.console.exe "C:.../Codex.repository.unittests.dll" /UseVsixVersion /Framework:framework45

При попытке выполнить тестовые случаи индивидуально с помощью тега «/ Tests:» я получил более подробное сообщение об ошибке:

Не удалось загрузить файл или сборку Moq, Version = 4.2.1502.911, культурно-нейтральный, PublicKeyToken = 69f4 ... или одну из их зависимостей. Системе не удается заполнить указанный файл. WRN: Ведение журнала привязки сборки выключено. Чтобы включить ведение журнала сбоев привязки сборок, установите для параметра реестра [HKLM \ Software \ Microsoft \ Fusion! EnableLog] (DWORD) значение 1. Примечание: ведение журнала сбоев привязки сборок снижает производительность. Чтобы отключить эту функцию, удалите значение реестра [HKLM \ Software \ Microsoft \ Fusion! EnableLog].

Итак, теперь я знаю, что причина в использовании Moq в моих тестовых примерах.

Как я могу решить эту проблему?


person A-Sharabiani    schedule 04.05.2015    source источник


Ответы (2)


Изначально я использовал dll-файл unit test в папке obj:

c:\>vstest.console.exe "..\obj\release\unittests.dll"

Visual Studio помещает все зависимые файлы .dll в папку bin, поэтому я изменил ее на:

c:\>vstest.console.exe "..\bin\release\unittests.dll"

Проблема решена!

person A-Sharabiani    schedule 04.05.2015
comment
Если у вас также есть Visual Studio на том же узле, вы можете запустить длительный тест, а затем попытаться использовать проводник процессов, чтобы узнать, из какой папки загружается тестовая dll. Затем используйте Vstest.console.exe для загрузки тестов из этой dll. Вы больше не получите ту же ошибку. - person shivesh suman; 28.01.2017

Вы должны убедиться, что для этих зависимостей установлено значение «Copy Local = True», чтобы vstest.console смог найти их вместе с вашей тестовой сборкой.

person jessehouwing    schedule 04.05.2015