Azure DevOps流水线无法忽略带指定属性的单元测试求助
解决Azure DevOps流水线无法忽略指定TestCategory单元测试的问题
你遇到的问题是因为VSTest@2任务的过滤器配置方式有误,以下是几个可行的修正方案:
方案1:使用任务内置的testFiltercriteria参数(推荐)
VSTest@2任务提供了专门的测试过滤配置项,比直接在arguments里传递参数更可靠,修改后的YAML如下:
- task: VSTest@2 inputs: platform: '$(buildPlatform)' configuration: '$(buildConfiguration)' testFiltercriteria: 'TestCategory!=DoNotRunOnBuild'
方案2:修正arguments里的引号格式
如果坚持使用arguments传递过滤参数,需要调整引号的写法,避免解析错误:
- task: VSTest@2 inputs: platform: '$(buildPlatform)' configuration: '$(buildConfiguration)' arguments: '--filter TestCategory!=DoNotRunOnBuild'
或者用转义单引号包裹过滤条件:
- task: VSTest@2 inputs: platform: '$(buildPlatform)' configuration: '$(buildConfiguration)' arguments: '--filter ''TestCategory!=DoNotRunOnBuild'''
额外检查项
- 确认测试代码中
TestCategory属性的字符串值DoNotRunOnBuild和过滤条件里的完全一致,注意大小写(VSTest过滤器对字符串匹配是大小写敏感的) - 检查VSTest任务是否正确选中了你的测试程序集,默认的
testAssemblyVer2值是**\*test*.dll!**\*TestAdapter.dll,如果你的测试dll命名不符合这个规则,需要手动指定testAssemblyVer2参数
内容的提问来源于stack exchange,提问作者Trevor Daniel
相关产品推荐
相关产品推荐

