VSTS Build не запускает тесты NUnit

При создании решения Visual Studio с использованием командных сервисов Visual Studio он запускает модульные тесты, написанные в nunit 3, используя NUnit3TestAdapter nunit 3, он запускает тесты.

Выдает следующую ошибку: Ошибка: недопустимые символы в пути.

Полный вывод выглядит следующим образом

2016-02-11T17:02:40.8514411Z Executing the powershell script: C:\BuildAgent\tasks\VSTest\1.0.29\VSTest.ps1
2016-02-11T17:02:41.1483135Z ##[debug]Calling Invoke-VSTest for all test assemblies
2016-02-11T17:02:41.2108131Z Working folder: C:\BuildAgent\_work\5
2016-02-11T17:02:41.2108131Z Executing C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe "C:\BuildAgent\_work\5\s\xxxxxxxxxxTests\bin\Release\xxxxxxxxxxTests.dll"  /logger:trx /TestAdapterPath:"C:\BuildAgent\_work\5\s"
2016-02-11T17:02:41.5240692Z Microsoft (R) Test Execution Command Line Tool Version 14.0.24720.0
2016-02-11T17:02:41.5240692Z Copyright (c) Microsoft Corporation.  All rights reserved.
2016-02-11T17:02:42.1326930Z Starting test execution, please wait...
2016-02-11T17:02:46.4921857Z Information: NUnit Adapter 3.0.8.0 executing tests is started
2016-02-11T17:02:46.5077303Z Information: Running all tests in C:\BuildAgent\_work\5\s\xxxxxxxxxxTests\bin\Release\xxxxxxxxxxTests.dll
2016-02-11T17:02:46.6327336Z Information: NUnit Adapter 3.0.8.0 executing tests is finished
2016-02-11T17:02:46.6327336Z ##[error]Error: Exception System.ArgumentException, Exception thrown executing tests
2016-02-11T17:02:46.6327336Z ##[error]
2016-02-11T17:02:46.6327336Z ##[error]Error: Illegal characters in path.
2016-02-11T17:02:46.6327336Z ##[error]
2016-02-11T17:02:46.7108474Z Information: Additionally, you can try specifying '/UseVsixExtensions' command if the test discoverer & executor is installed on the machine as vsix extensions and your installation supports vsix extensions. Example: vstest.console.exe myTests.dll /UseVsixExtensions:true
2016-02-11T17:02:46.8358887Z ##[error]VSTest Test Run failed with exit code: 1
2016-02-11T17:02:46.8514965Z ##[warning]No results found to publish.

У нас есть локальный агент сборки, но я не думаю, что это должно иметь значение.

Скриншот шага теста сборки

Любой совет, который вы можете дать, ценится.


person Dean    schedule 12.02.2016    source источник


Ответы (2)


Я столкнулся с этой проблемой при использовании пакета Nuget тестового адаптера NUnit3. во время сборки. И я решил это, установив тестовый адаптер NUnit3 и загрузив все установленные файлы в систему управления версиями и используйте его в качестве тестового адаптера.

Поскольку вы используете локальный агент сборки. Вы можете легко установить тестовый адаптер NUnit3 в агенте сборки и использовать аргумент «/UseVsixExtensions:true», как указано в сообщении об ошибке. введите здесь описание изображения

person Eddie Chen - MSFT    schedule 15.02.2016
comment
@Dean Вы перезапустили VS после установки тестового адаптера? - person Eddie Chen - MSFT; 15.02.2016
comment
Я перезапустил все и все еще никакой радости. - person Dean; 15.02.2016
comment
@Dean Можете ли вы поделиться снимком экрана с определением вашей сборки? - person Eddie Chen - MSFT; 16.02.2016
comment
Я добавил скриншот, не уверен, что он скажет, выглядит так же, как тот, который вы разместили. - person Dean; 16.02.2016
comment
@Dean Вы использовали пакет Nuget тестового адаптера NUnit3 раньше? Если да, вам необходимо удалить пакет nuget при использовании аргумента /UseVsixExtensions:true. - person Eddie Chen - MSFT; 16.02.2016
comment
Только что попробовал, что единственная разница в выводе заключается в том, что сейчас не предлагается работать с /UserVisxExtensions:true. Мне кажется, что он пытается запустить тесты, но один из передаваемых параметров неверен. - person Dean; 16.02.2016
comment
Давайте продолжим это обсуждение в чате. - person Eddie Chen - MSFT; 16.02.2016

FWIW, я включил подробное ведение журнала, следуя Советы и рекомендации и получил это:

2016-02-23T14:45:49.5620657Z Information: Running all tests in C:\TFS2015\_work\3\s\BlaBlaTests\bin\Debug\BlaBlaTests.dll
2016-02-23T14:45:49.6088663Z ##[error]Error: Exception thrown executing tests
2016-02-23T14:45:49.6088663Z ##[error]
2016-02-23T14:45:49.6088663Z ##[error]Error: System.ArgumentException: Illegal characters in path.
2016-02-23T14:45:49.6088663Z ##[error]   at System.IO.Path.CheckInvalidPathChars(String path)
2016-02-23T14:45:49.6088663Z ##[error]   at System.IO.Path.Combine(String path1, String path2)
2016-02-23T14:45:49.6088663Z ##[error]   at NUnit.Engine.Services.ExtensionService.ProcessAddinsFile(DirectoryInfo baseDir, String fileName)
2016-02-23T14:45:49.6088663Z ##[error]   at NUnit.Engine.Services.ExtensionService.FindExtensionsInDirectory(DirectoryInfo startDir)
2016-02-23T14:45:49.6088663Z ##[error]   at NUnit.Engine.Services.ExtensionService.StartService()
2016-02-23T14:45:49.6088663Z ##[error]   at NUnit.Engine.Services.ServiceManager.StartServices()
2016-02-23T14:45:49.6088663Z ##[error]   at NUnit.Engine.TestEngine.Initialize()
2016-02-23T14:45:49.6088663Z ##[error]   at NUnit.Engine.TestEngine.GetRunner(TestPackage package)
2016-02-23T14:45:49.6088663Z ##[error]   at NUnit.VisualStudio.TestAdapter.NUnitTestAdapter.GetRunnerFor(String assemblyName)
2016-02-23T14:45:49.6088663Z ##[error]   at NUnit.VisualStudio.TestAdapter.NUnit3TestExecutor.RunAssembly(String assemblyName, IFrameworkHandle frameworkHandle)
2016-02-23T14:45:49.6088663Z ##[error]   at NUnit.VisualStudio.TestAdapter.NUnit3TestExecutor.RunTests(IEnumerable`1 sources, IRunContext runContext, IFrameworkHandle frameworkHandle)
2016-02-23T14:45:49.6088663Z ##[error]
2016-02-23T14:45:49.6088663Z Information: NUnit Adapter 3.0.8.0 executing tests is finished

что коррелирует с доступом к %LOCALAPPDATA%\NUnit\Nunit30Settings.xml, но может быть не связано. ExtensionService находится здесь.

Проблемы #117 и #118 связаны с этим исправлением, предоставленным РобертК66:

Если вы устанавливаете версию 3.0.8.0 как пакет Nuget, то в папке packages\NUnit3TestAdapter.3.0.8-ctp-8\lib установлен поврежденный (не пустой!) файл «ignore.addins». Более ранние версии устанавливали пустой файл размером 0 байт!

После удаления содержимого этого файла в папке /packages/NUnit3TestAdapter.3.0.8-ctp-8\lib и удаления кешированной версии адаптера в папке \AppData\Local\Temp\VisualStudioTestExplorerExtensions... все работает как положено!

person Jan Sandquist    schedule 23.02.2016
comment
Спасибо, это была именно проблема для меня (использовал ту же версию пакета nuget). Что бы это ни стоило, я только что обновился до последней версии (3.4 на момент написания), используя nuget, и проблема исчезла. - person Mike; 24.08.2016