2017-02-07 13 views
2

Я пытаюсь использовать NUnit 3 в Visual Studio Team System, который, похоже, сделал очень тяжело. Я добавил на этапе тестовых сборок процесс сборки и в опциях расширенного выполнения -> Путь к пользовательским тестовым адаптерам. Я поместил путь каталога в плагин NUnitVisualStudioTestAdapter-2.0.0.vsix, как указано в справке. Независимо от того, что я делаю, похоже, он не находит или не пытается запустить это. Он просто запускает Visual Studio Test и сообщает, что тестов не было найдено. Я также попытался установить тестовый адаптер как пакет Nuget и путь к инструментам в этом, но это тоже не работает.Как использовать NUnit в VSTS?

Неужели кому-то удалось заставить NUnit работать в VSTS и сообщить результаты тестирования?

Бревно я получаю:

2017-02-07T10:59:26.2778725Z ##[section]Starting: Test Assemblies **\*.Unit.Tests.dll;-:**\obj\** 
2017-02-07T10:59:26.2798723Z ============================================================================== 
2017-02-07T10:59:26.2798723Z Task   : Visual Studio Test 
2017-02-07T10:59:26.2798723Z Description : Run tests with Visual Studio test runner 
2017-02-07T10:59:26.2798723Z Version  : 2.0.10 
2017-02-07T10:59:26.2798723Z Author  : Microsoft Corporation 
2017-02-07T10:59:26.2798723Z Help   : [More Information](https://go.microsoft.com/fwlink/?LinkId=835764) 
2017-02-07T10:59:26.2798723Z ============================================================================== 
2017-02-07T10:59:28.6268742Z ##[warning]No test assemblies found matching the pattern: **\*.Unit.Tests.dll;-:**\obj\**. 
2017-02-07T10:59:28.6998724Z ##[section]Finishing: Test Assemblies **\*.Unit.Tests.dll;-:**\obj\** 

Блок длл тест называется App.Web.Unit.Tests.dll

С system.debug = истинный набор, журнал я получаю как следующим образом: (с некоторыми операторы импорта раздели, чтобы поместиться в 30000 символов)

2017-02-08T10:44:46.2171630Z ##[section]Starting: Test Assemblies **\*.Unit.Tests.dll;-:**\obj\** 
2017-02-08T10:44:46.2251636Z ============================================================================== 
2017-02-08T10:44:46.2251636Z Task   : Visual Studio Test 
2017-02-08T10:44:46.2251636Z Description : Run tests with Visual Studio test runner 
2017-02-08T10:44:46.2251636Z Version  : 1.0.84 
2017-02-08T10:44:46.2251636Z Author  : Microsoft Corporation 
2017-02-08T10:44:46.2251636Z Help   : [More Information](https://go.microsoft.com/fwlink/?LinkId=624539) 
2017-02-08T10:44:46.2251636Z ============================================================================== 
2017-02-08T10:44:46.2381636Z Preparing task execution handler. 
2017-02-08T10:44:52.1286673Z Executing the powershell script: D:\a\_tasks\VSTest_ef087383-ee5e-42c7-9a53-ab56c98420f9\1.0.84\VSTest.ps1 
2017-02-08T10:44:52.1296976Z ##[debug]PowerShellHandler.Execute - AddCommand(D:\a\_tasks\VSTest_ef087383-ee5e-42c7-9a53-ab56c98420f9\1.0.84\VSTest.ps1) 
2017-02-08T10:44:52.1296976Z ##[debug]PowerShellHandler.Execute - Add inputParameters 
2017-02-08T10:44:52.1296976Z ##[debug]PowerShellHandler.Execute - AddParameter(testAssembly=**\*Tests.dll;-:**\obj\**) 
2017-02-08T10:44:52.1296976Z ##[debug]PowerShellHandler.Execute - AddParameter(testFiltercriteria=) 
2017-02-08T10:44:52.1296976Z ##[debug]PowerShellHandler.Execute - AddParameter(runSettingsFile=D:\a\1\s) 
2017-02-08T10:44:52.1296976Z ##[debug]PowerShellHandler.Execute - AddParameter(overrideTestrunParameters=) 
2017-02-08T10:44:52.1296976Z ##[debug]PowerShellHandler.Execute - AddParameter(codeCoverageEnabled=true) 
2017-02-08T10:44:52.1296976Z ##[debug]PowerShellHandler.Execute - AddParameter(runInParallel=false) 
2017-02-08T10:44:52.1296976Z ##[debug]PowerShellHandler.Execute - AddParameter(vstestLocationMethod=version) 
2017-02-08T10:44:52.1296976Z ##[debug]PowerShellHandler.Execute - AddParameter(vsTestVersion=latest) 
2017-02-08T10:44:52.1296976Z ##[debug]PowerShellHandler.Execute - AddParameter(vstestLocation=) 
2017-02-08T10:44:52.1296976Z ##[debug]PowerShellHandler.Execute - AddParameter(pathtoCustomTestAdapters=D:\a\1\s\packages) 
2017-02-08T10:44:52.1296976Z ##[debug]PowerShellHandler.Execute - AddParameter(otherConsoleOptions=) 
2017-02-08T10:44:52.1296976Z ##[debug]PowerShellHandler.Execute - AddParameter(testRunTitle=) 
2017-02-08T10:44:52.1296976Z ##[debug]PowerShellHandler.Execute - AddParameter(platform=any cpu) 
2017-02-08T10:44:52.1296976Z ##[debug]PowerShellHandler.Execute - AddParameter(configuration=release) 
2017-02-08T10:44:52.1296976Z ##[debug]PowerShellHandler.Execute - AddParameter(publishRunAttachments=true) 
2017-02-08T10:44:52.4586977Z ##[debug]PowerShellHandler.Execute - Invoke 
2017-02-08T10:44:52.5076979Z ##[debug]Entering script VSTest.ps1 
2017-02-08T10:44:52.5096982Z ##[debug]vsTestVersion = latest 
2017-02-08T10:44:52.5096982Z ##[debug]testAssembly = **\*Tests.dll;-:**\obj\** 
2017-02-08T10:44:52.5096982Z ##[debug]testFiltercriteria = 
2017-02-08T10:44:52.5096982Z ##[debug]runSettingsFile = D:\a\1\s 
2017-02-08T10:44:52.5096982Z ##[debug]codeCoverageEnabled = true 
2017-02-08T10:44:52.5106990Z ##[debug]pathtoCustomTestAdapters = D:\a\1\s\packages 
2017-02-08T10:44:52.5106990Z ##[debug]overrideTestrunParameters = 
2017-02-08T10:44:52.5106990Z ##[debug]otherConsoleOptions = 
2017-02-08T10:44:52.5106990Z ##[debug]testRunTitle = 
2017-02-08T10:44:52.5106990Z ##[debug]platform = any cpu 
2017-02-08T10:44:52.5106990Z ##[debug]configuration = release 
2017-02-08T10:44:52.5106990Z ##[debug]publishRunAttachments = true 
2017-02-08T10:44:52.5106990Z ##[debug]vstestLocation = 
2017-02-08T10:44:52.5476990Z ##[debug]Loading module from path 'C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\2.111.1\externals\vstshost\Microsoft.TeamFoundation.DistributedTask.Task.Internal\Microsoft.TeamFoundation.DistributedTask.Task.Internal.psd1'. 
2017-02-08T10:44:52.5566992Z ##[debug]Loading module from path 'C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\2.111.1\externals\vstshost\Microsoft.TeamFoundation.DistributedTask.Task.Internal\Microsoft.TeamFoundation.DistributedTask.Task.Internal.psm1'. 
2017-02-08T10:44:52.5656993Z ##[debug]Loading module from path 'C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\2.111.1\externals\vstshost\Microsoft.TeamFoundation.DistributedTask.Task.LegacySDK.dll'. 
2017-02-08T10:44:52.6656999Z ##[debug]Loading module from path 'C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\2.111.1\externals\vstshost\Microsoft.TeamFoundation.DistributedTask.Task.Common\Microsoft.TeamFoundation.DistributedTask.Task.Common.psd1'. 
2017-02-08T10:44:52.6727018Z ##[debug]Loading module from path 'C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\2.111.1\externals\vstshost\Microsoft.TeamFoundation.DistributedTask.Task.Common\Microsoft.TeamFoundation.DistributedTask.Task.Common.psm1'. 
2017-02-08T10:44:52.7086999Z ##[debug]Loading module from path 'C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\2.111.1\externals\vstshost\Microsoft.TeamFoundation.DistributedTask.Task.TestResults\Microsoft.TeamFoundation.DistributedTask.Task.TestResults.psm1'. 
2017-02-08T10:44:52.7336993Z ##[debug]Loading module from path 'C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\2.111.1\externals\vstshost\Microsoft.TeamFoundation.DistributedTask.Task.CodeCoverage\Microsoft.TeamFoundation.DistributedTask.Task.CodeCoverage.psm1'. 
2017-02-08T10:44:52.7406994Z ##[debug]Importing cmdlet 'Invoke-ResultPublisher'. 
2017-02-08T10:44:52.7416986Z ##[debug]Importing cmdlet 'Publish-TestResults'. 
2017-02-08T10:44:52.7416986Z ##[debug]Importing cmdlet 'Add-BuildArtifactLink'. 
2017-02-08T10:44:52.7416986Z ##[debug]Importing cmdlet 'Get-MSBuildLocation'. 
2017-02-08T10:44:52.7416986Z ##[debug]Importing cmdlet 'Get-ToolPath'. 
2017-02-08T10:44:52.7416986Z ##[debug]Importing cmdlet 'Get-VisualStudioPath'. 
2017-02-08T10:44:52.7427007Z ##[debug]Importing cmdlet 'Get-VssConnection'. 
2017-02-08T10:44:52.7427007Z ##[debug]Importing cmdlet 'Invoke-Ant'. 
2017-02-08T10:44:52.7427007Z ##[debug]Importing cmdlet 'Register-XamarinLicense'. 
2017-02-08T10:44:52.7427007Z ##[debug]Importing cmdlet 'Remove-Environment'. 
2017-02-08T10:44:52.7427007Z ##[debug]Importing cmdlet 'Remove-EnvironmentResources'. 
2017-02-08T10:44:52.7427007Z ##[debug]Importing cmdlet 'Complete-EnvironmentOperation'. 
2017-02-08T10:44:52.7427007Z ##[debug]Importing cmdlet 'Complete-EnvironmentResourceOperation'. 
2017-02-08T10:44:52.7436999Z ##[debug]Importing cmdlet 'Complete-ResourceOperation'. 
2017-02-08T10:44:52.7436999Z ##[debug]Importing cmdlet 'Get-Environment'. 
2017-02-08T10:44:52.7436999Z ##[debug]Importing cmdlet 'Get-EnvironmentProperty'. 
2017-02-08T10:44:52.7436999Z ##[debug]Importing cmdlet 'Get-EnvironmentResources'. 
2017-02-08T10:44:52.7436999Z ##[debug]Importing cmdlet 'Get-ExternalIpAddress'. 
2017-02-08T10:44:52.7436999Z ##[debug]Importing cmdlet 'Get-ParsedSessionVariables'. 
2017-02-08T10:44:52.7436999Z ##[debug]Importing cmdlet 'Add-TaskIssue'. 
2017-02-08T10:44:52.7447001Z ##[debug]Importing cmdlet 'Publish-CodeCoverage'. 
2017-02-08T10:44:52.7447001Z ##[debug]Exporting cmdlet 'Enable-CodeCoverage'. 
2017-02-08T10:44:52.7447001Z ##[debug]Exporting cmdlet 'Publish-CodeCoverage'. 
2017-02-08T10:44:52.7447001Z ##[debug]Importing cmdlet 'Enable-CodeCoverage'. 
2017-02-08T10:44:52.7447001Z ##[debug]Importing cmdlet 'Publish-CodeCoverage'. 
2017-02-08T10:44:52.8017010Z ##[debug]Invoke - Get-TaskVariable cmdlet 
2017-02-08T10:44:52.8107020Z ##[debug]Pattern found in solution parameter. Calling Find-Files. 
2017-02-08T10:44:52.8107020Z ##[debug]Calling Find-Files with pattern: **\*Tests.dll;-:**\obj\** 
2017-02-08T10:44:52.8147008Z ##[debug]FindFiles.FindMatchingFiles(rootFolder = D:\a\1\s, matchPattern = **\*Tests.dll;-:**\obj\**, includeFiles = True, includeFolders = False 
2017-02-08T10:44:52.8177007Z ##[debug]FindFiles.GetMatchingItems(includePatterns.Count = 1, excludePatterns.Count = 1, includeFiles = True, includeFolders = False 
2017-02-08T10:44:53.4177077Z ##[debug]FindFiles.FindMatchingFiles - Found 0 matches 
2017-02-08T10:44:53.4237058Z ##[debug]Found files: 
2017-02-08T10:44:53.4467065Z ##[debug]Processed: ##vso[task.logissue type=warning;code=002004;] 
2017-02-08T10:44:53.4467065Z 
2017-02-08T10:44:53.4467065Z 
2017-02-08T10:44:53.4587060Z ##[warning]No test assemblies found matching the pattern: '**\*Tests.dll;-:**\obj\**'. 
2017-02-08T10:44:53.4587060Z ##[debug]Processed: ##vso[task.logissue type=warning]No test assemblies found matching the pattern: '**\*Tests.dll;-:**\obj\**'. 
2017-02-08T10:44:53.4607060Z ##[debug]Leaving script VSTest.ps1 
2017-02-08T10:44:53.4914646Z ##[section]Finishing: Test Assemblies **\*.Unit.Tests.dll;-:**\obj\** 

UPDATE:

Я установил пакет NUnit3TestAdapter в проект модульного тестирования. Я внес изменения в шаг сборки в VSTS:

Это версия 2. (предварительный просмотр) Шаблон поиска: * тест .dll ! \ OBJ ** и в дополнительных параметрах исполнения у меня есть путь к пользовательским адаптерам для тестирования значения $ (Build.SourcesDirectory) \

тогда я получаю эту информацию для отладки, так по крайней мере, он нашел тестовые адаптеры, если не тесты Сейчас:

[command]"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" D:\a\1\s\packages\NUnit3TestAdapter.3.7.0\tools\NUnit3.TestAdapter.dll /EnableCodeCoverage /logger:trx "/TestAdapterPath:\"D:\a\1\s\\\"" 
Microsoft (R) Test Execution Command Line Tool Version 14.0.25420.1 
Copyright (c) Microsoft Corporation. All rights reserved. 

Starting test execution, please wait... 
Warning: Using Isolation mode to run tests as required by effective Platform:X86 and .Net Framework:Framework35 settings for test run. Use the /inIsolation parameter to suppress this warning. 
Information: NUnit Adapter 3.7.0.0: Test execution started 

Information: Running all tests in D:\a\1\s\packages\NUnit3TestAdapter.3.7.0\tools\NUnit3.TestAdapter.dll 

Information: NUnit failed to load D:\a\1\s\packages\NUnit3TestAdapter.3.7.0\tools\NUnit3.TestAdapter.dll 

Information: NUnit Adapter 3.7.0.0: Test execution complete 

Warning: No test is available in D:\a\1\s\packages\NUnit3TestAdapter.3.7.0\tools\NUnit3.TestAdapter.dll. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. 
+0

Какой тип NUnit вы используете? – Chris

+0

добавлен в журнал и nunit версии 3 подробнее – johnstaveley

+0

Можете ли вы добавить переменную с именем 'system.debug' со значением' true' и опубликовать журналы отладки? – jessehouwing

ответ

1

Проблема в вашем исходном сообщении заключается в том, что задача тестирования Visual Studio не может найти тестовую сборку (App.Web.Unit.Tests.dll), которую вы хотите протестировать. И в вашем обновлении после изменения шаблона поиска на «* test.dll» он все еще не может найти тестовую сборку. Он просто находит «NUnit3.TestAdapter.dll», который является двоичным файлом для адаптера NUnit, а двоичный файл не содержит никакого тестового метода. Поэтому вам нужно проверить журнал сборки, чтобы проверить, правильно ли сформирована тестовая сборка на этапе сборки и каков путь к ней, а затем установить шаблон поиска в соответствии с этим путем.

Update:

Согласно журналам предоставленных вами, выходные файлы помещаются в "D: \ а \ 1 \ а" папку, так как вы задан параметр «/ р: OUTDIR = D: \ в \ 1 \ а». Попробуйте изменить схему поиска на: D:\a\1\a\*.Unit.Tests.dll или $(build.stagingDirectory)\*.Unit.Tests.dll

+0

dllI хочет протестировать в корне артефактов сборки, по какой-то причине VSTS ищет его в каталоге тестового адаптера – johnstaveley

2

путь пользовательских адаптеров для тестирования необходимо указать на извлеченный VSIX или извлеченный NuGet пакет.

Самый простой способ сделать эту работу - добавить NUnit Test Adapter NuGet package 2.x/3.x к вашему проектному модулю. Задача VsTest должна автоматически определить тестовые бегуны, которые восстанавливаются в каталог NuGet пакетов:

Nuget restored packages are automatically searched for

Убедитесь, что версия nunit.framework и матч NUnit адаптеры версии. Убедитесь, что пакеты добавлены в ваши тестовые проекты.

+0

Итак, если я добавлю в пакет адаптера тестирования NUnit, мне нужно установить путь? – johnstaveley

+0

Я установил его так: \ packages \ NUnit3TestAdapter.3.7.0 \ Он все еще не запускает тесты – johnstaveley

+0

Можете ли вы поделиться журналами тестовой задачи? – jessehouwing