NUnit 3.2.1 + TeamCity: не удалось загрузить файл или сборку 'nunit.framework'
Недавно я обновился до TeamCity 9.1.6 для запуска моих новых модульных тестов на основе NUnit 3.2.1. Но теперь у меня возникают проблемы с запуском тестов:
Я выбрал исполнителя NUnit3 в шагах сборки, настроил его соответственно:
![Конфигурация шага сборки]()
При создании я получаю сообщение об ошибке: "Не удалось загрузить файл или сборку" nunit.framework "или одну из его зависимостей. Система не может найти указанный файл." .
![Журнал сборки]()
Все должно быть хорошо, пути прекрасны, сборка находится на пути тестовой сборки, все построено в конфигурации AnyCPU.
Там также ошибка, указывающая на то, что версия NUnit не является версией, которая, я думаю, дерьмо, это релиз на веб-сайте NUnit. И ошибка, кажется, не сломала ничего (она присутствовала даже тогда, когда у меня была ошибка перед ошибкой "nunit.framework", и когда я исправил ее, сборка получила дальнейшее развитие).
Любые подсказки оцениваются!
UPDATE:
Выполнение тестов с использованием лидера командной строки и запуск этого же nunit3-console.exe отлично работает. Поэтому я предполагаю, что это проблема с бегуном NUnit. Тем не менее, приветствуются предложения о том, как исправить это.
ОБНОВЛЕНИЕ 2:
Я попытался понизить как пакет решений, так и NUnit-Console, используемые TeamCity до 3.0.0, - все же, тот же результат.
ОБНОВЛЕНИЕ 3:
Как я уже подозревал, поддержка TeamCity подтвердила, что сообщение о том, что версия NUnit не поддерживается, является ошибочной и ничего не должна влиять.
Ответы
Ответ 1
После продолжительной дискуссии по электронной почте с технической поддержкой TeamCity мы пришли к решению. Мне сообщили, что они исправили эту проблему в предстоящем выпуске TC10 (приходя где-то в конце июня 2016 года), и что на данный момент есть несколько обходных решений, которые исправят это.
Я пробовал номер два, и это сработало для меня.
-
Запускать тесты только во вложенных каталогах относительно каталога выписки (например, вы могли бы скопировать их раньше)
-
Добавьте параметр конфигурации сборки nunit_use_project_file
в False
:
![Изменить всплывающее окно параметров]()
То есть я пошел в свое тестовое здание и выполнил проекты, перешел в раздел "Параметры" и добавил новый параметр "nunit_use_project_file" как False. Тесты теперь выполняются под управлением NUnit3.
Ответ 2
У меня была такая же проблема с TeamCity 10.0.1 (сборка 42078) и NUnit 3.4.1.
И это оказалось моей полной ошибкой. Я размещаю его здесь, так как кто-то другой может споткнуться в одну и ту же проблему, и это может сэкономить некоторое время.
Оказалось, что проблема была в настройке "Run tests from: "
в моей конфигурации сборки.
![введите описание изображения здесь]()
У меня было **\*.Test.dll
. Это случайно собирало DLL для каталогов \obj\**\
(там, где отсутствует nunit.framework.dll). Как только я изменил настройку на **\bin\%BuildConfiguration%\*.test.dll
, все работает нормально.
Примечание:% BuildConfiguration% - это параметр, который указывает предпочтительную конфигурацию сборки на TC (например, Debug/Release/CIBuild и т.д.).
Ответ 3
Если у вас еще нет Nunit3 и Nunit.Console(Runner) в вашем пакете .config, вы должны "установить" его в свой проект с помощью диспетчера пакетов.
Затем следуйте указаниям в этом другом ответе о создании "автоматического обнаружения" для Nunit.ConsoleRunner. fooobar.com/info/418130/...