我有一个 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
当我运行它时,我的管道失败并显示以下错误消息:
调用执行程序“executor://nunit3testexecutor/”时发生异常:选择表达式中位置 29 处的意外单词“类别”。
我很确定会发生这种情况,因为 NUnit 正在被拾取并且它不理解Category
过滤器术语。(NUnit 期望使用该术语TestCategory
)
我尝试通过这种方式让管道不接收 NUnit 项目(称为“EndToEnd”):
--filter FullyQualifiedName!~EndToEnd&Category!=Integration'
但这不起作用,我收到相同的错误消息。
如何让 Azure DevOps Pipelines 在此步骤中仅在我的 xUnit 项目中运行测试,并且不会因为 NUnit 项目的存在而失败?