Как включить и xUnit, и NUnit в решение, построенное на Azure DevOps Pipelines?
У меня есть решение C#, в котором есть несколько проектов модульных тестов, использующих xUnit, и проект "сквозных" тестов, использующий NUnit. (Это сделано намеренно и прекрасно, поэтому я был бы признателен, если бы не пытался убедить меня отказаться от одного за другого, спасибо)
Я использую Azure DevOps Pipeline для создания, тестирования и упаковки своего решения. Это мой тестовый шаг (из azure-pipelines.yml) на данный момент:
- task: DotNetCoreCLI@2
displayName: 'Run tests in solution'
inputs:
command: 'test'
arguments: '--configuration $(buildConfiguration) --collect "Code coverage" --filter Category!=Integration'
publishTestResults: true
Когда я запускаю его, мой конвейер выходит из строя с этим сообщением об ошибке:
Возникла исключительная ситуация при вызове исполнителя 'Execution://nunit3testexecutor/': Unexpected Word 'Category' в позиции 29 в выражении выбора.
Я почти уверен, что это происходит потому, что NUnit забирается, и он не понимает
Category
срок фильтрации. (NUnit ожидает, что срок
TestCategory
вместо)
Я попытался заставить конвейер не забирать проект NUnit (называемый "EndToEnd") следующим образом:
--filter FullyQualifiedName!~EndToEnd&Category!=Integration'
Но это не работает, и я получаю то же сообщение об ошибке.
Как я могу заставить Azure DevOps Pipelines запускать тесты только в моих проектах xUnit на этом этапе и не давать сбоев из-за наличия проекта NUnit?
1 ответ
Вы можете использовать
projects
выбирать проекты. Я протестировал это против этого решения, и оно работает: ht tps:https://stackru.com/images/2e6cebbfb42eac9e30f1b0ad9b449635c621dd99.png
variables:
buildConfiguration: 'Release'
rootDirectory: '$(Build.SourcesDirectory)/stackru/69-nunit-and-xunit'
steps:
- task: DotNetCoreCLI@2
displayName: Restore nuget packages
inputs:
command: restore
projects: '**/*.csproj'
workingDirectory: $(rootDirectory)
- task: DotNetCoreCLI@2
displayName: Test xUnit
inputs:
command: test
projects: '$(rootDirectory)/**/*XUnit.csproj'
arguments: '--configuration $(buildConfiguration)'
- task: DotNetCoreCLI@2
displayName: Test NUnit
inputs:
command: test
projects: '$(rootDirectory)/**/*NUnit.csproj'
arguments: '--configuration $(buildConfiguration)'