У меня есть набор тестов MsTest и NUnit, которые выполняются в TFS 2015 с использованием этапа тестирования VS. Я использую NUnit Test Adapter 3.4.1 для запуска тестов в агенте сборки.VS Шаг теста на TFS после прохождения всех тестов
В конце концов, несмотря на то, что испытания проходят, Nunit, похоже, каркается, и шаг сборки не выполняется с этими двумя ошибками.
2016-09-04T09:59:44.7209787Z ##[error]Error: Exception NUnit.Engine.NUnitEngineException, Exception thrown executing tests
2016-09-04T09:59:44.7209787Z ##[error]
2016-09-04T09:59:44.7209787Z ##[error]Error: Exception encountered unloading AppDomain
2016-09-04T09:59:44.7209787Z ##[error]
2016-09-04T09:59:44.7209787Z Information: NUnit Adapter 3.4.1.0: Test execution complete
2016-09-04T09:59:44.8615975Z Results File: C:\agent\_work2\1\TestResults\SRV-BLD1 2016-09-04 01_22_45.trx
2016-09-04T09:59:44.8615975Z Total tests: 139. Passed: 134. Failed: 0. Skipped: 5.
Я проверил, что есть на самом деле 139 тестов в наборе, и 5 установлены игнорировать (2 являются MSTest и 3 являются NUnit).
Я не уверен, есть ли место, где можно получить более подробное объяснение ошибки. Поиск на этом сайте и в google, по-видимому, предполагает, что NUnit.Engine.NUnitEngineException связано с обнаружением теста (например, here и here), но мои тесты обнаруживаются, поэтому я не уверен, что это связано (довольно новичок в NUnit, поэтому не уверен в многом).
Я также видел две ссылки, касающиеся сбоев адаптера (и here), но ошибки не совсем совпадают, хотя, возможно, только потому, что у меня нет такого же уровня детализации.
В TFS на этом шаге нет никакой конфигурации, только что он включен и путь к DLL.
Кто-нибудь знает, что вызывает ошибки (которые я предполагаю, вызывают сбои сборки)? В качестве альтернативы, какими должны быть следующие шаги для получения более точного/подробного стека ошибок для исследования проблемы?
В качестве примечания, я увидел this SO ответ, в котором говорится следующее:
MSTest.exe возвратил код выхода 1 о том, что не все тесты прошли .
Я не смог найти подтверждения о том, что VSTests терпит неудачу, когда он сталкивается с пропущенными тестами, но может ли это также быть проблемой?
Благодарим за помощь.
UPDATE
Как предлагается ниже, я попытался запустить это из IDE непосредственно, и получил этот вывод (папки отредактированный)
------ Discover test started ------
NUnit Adapter 3.4.1.0: Test discovery starting
NUnit Adapter 3.4.1.0: Test discovery complete
========== Discover test finished: 139 found (0:00:00.8820879) ==========
------ Run test started ------
System.AppDomainUnloadedException: Attempted to access an unloaded AppDomain. This can happen if the test(s) started a thread but did not stop it. Make sure that all the threads started by the test(s) are stopped before completion.
NUnit Adapter 3.4.1.0: Test execution started
Running all tests in C:\agent\_work2\1\s\codePorject\bin\Debug\codeProjectTests.dll
NUnit3TestExecutor converted 37 of 37 NUnit test cases
System.AppDomainUnloadedException: Attempted to access an unloaded AppDomain. This can happen if the test(s) started a thread but did not stop it. Make sure that all the threads started by the test(s) are stopped before completion.
Exception NUnit.Engine.NUnitEngineException, Exception thrown executing tests
Exception encountered unloading AppDomain
NUnit Adapter 3.4.1.0: Test execution complete
========== Run test finished: 139 run (1:20:10.3290294) ==========
Я нашел подобный XUnit issue открыт, но он, похоже, не имеет решения.
This Решение StackOverflow предлагает использовать таймер сна, поэтому я могу попробовать это.
Вы восстанавливаете Nunit и Nunit3TestAdapter от Nuget? –
Нет, я их установил на агенте сборки. Используемая версия - 3.4.1 – Kolichikov
Можете ли вы создать образец тестового кода модуля, который может воспроизвести эту проблему, а затем поделиться ею? –