Тесты nunit выдают исключение только при запуске как часть процесса tfs msbuild

Я создаю и внедряю решение из Visual Studio 2015 с использованием TFS 2012 без проблем. Я решил включить свои модульные тесты как часть предварительных условий для процесса сборки.

Независимо от процесса msbuild, модульные тесты запускаются без проблем и успешно; однако, когда я включаю их как часть моего процесса сборки, я получаю следующее исключение в моей сборке:

Exception NUnit.Core.UnsupportedFrameworkException, Exception thrown executing tests in D:\Builds\4\PA1111CE\Dev1111dBus\bin\mmmTests.dll
 No test is available in D:\Builds\4\PA1111CE\Dev1111dBus\bin\mmmTests.dll. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again.

Сборка частично удалась.

Чтобы убедиться, что тесты запущены, я установил для свойства Disable Tests в Process значение false:

В дополнение к этому я установил параметры для автоматических тестов:

Доступны только следующие бегуны:

также, согласно моим расширениям и обновлениям, это показывает, что у меня действительно установлен адаптер nunit 3:

Что я делаю неправильно? Почему моя сборка удалась только частично?

4 ответа

Решение

У меня была такая же проблема на моем сервере сборки при использовании NUnit 3 через NuGet. Я удалил тестовые адаптеры NUnit 2 и 3 из Visual Studio и NUnit 2 с машины. У меня все еще была проблема.

В моем случае проблема была вызвана тем, что 4 библиотеки NUnit2 скрывались в:

C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TestWindow \ Extensions

Как только они были удалены, сборка TFS выполнена отлично.

Сообщение указывает, что вы пытаетесь запустить тесты NUnit, используя неправильный адаптер Visual Studio. Используйте адаптер 2.0 для тестов NUnit 2.x и адаптер 3.0 для тестов NUnit 3.0.

Если у вас установлены оба адаптера, каждый из них будет запускать тесты, для которых они предназначены. Каждый из них отобразит сообщение для любой сборки, которую они не поддерживают. Сообщение не должно быть ошибкой, и мы пытаемся сформулировать его так, чтобы оно не воспринималось как таковое. Однако мы чувствовали, что должны предоставить его на тот случай, если вы ожидаете, что сборка будет обрабатываться этим конкретным адаптером. Проходя мимо, молча кажется неправильным.

При работе под VS IDE сообщение не вызывает сбой в тестовом прогоне. Похоже, что запуск под TFS вызывает сбой. Если память служит, мы исправили эту проблему для адаптера NUnit 3, но не (пока) для адаптера NUnit 2.

У меня была точно такая же проблема. Я использую NUnit 3.2.1, и у меня были установлены тестовые адаптеры NUnit 2.0 и 3.0.

Я не мог понять, как переключать адаптеры, поэтому я отключил 2.0. Теперь я не получаю ошибок (хотя это было только сообщение, как вы - тест пройден / не пройден, как и должно быть).

Чтобы отключить тестовый адаптер 2.0 (возможно, также установите 3.0): Инструменты -> Расширения и обновления -> Поиск или найдите Nunit 2.0 и нажмите "Отключить или удалить".

Нашел эту статью, но сам не проверял: не удалось загрузить NUnit в сборке TFS

В итоге я временно исключил мой unittest-проект из сборки, как описано здесь

Другие вопросы по тегам