Подтвердить что ты не робот

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 в Процесс на false:

введите описание изображения здесь

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

введите описание изображения здесь

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

введите описание изображения здесь

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

введите описание изображения здесь

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

4b9b3361

Ответ 1

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

В моем случае проблема была вызвана 4 DLL NUnit2, скрывающимися в:

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

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

Ответ 2

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

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

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

Ответ 3

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

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

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