У меня есть решение 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?
projects: '**/*.Tests.csproj'
. Я думаю, что еще лучшим решением может быть:projects: !'**/*.EndToEnd.csproj'
- person urig   schedule 22.09.2020