Yaml:如何排除 VSTest@2 中的一些测试

Posted

技术标签:

【中文标题】Yaml:如何排除 VSTest@2 中的一些测试【英文标题】:Yaml: How to exclude some tests in VSTest@2 【发布时间】:2021-12-29 12:34:14 【问题描述】:

目前,我们正在迁移到 AzureDevOps。我们有一些在代理上失败的单元测试,但我们没有能力立即修复它们。在我们修复它们之前,我们希望将它们从管道中排除并设置一个所有测试都应该通过的策略,然后一个一个地修复它们。

我说,我有 4 个 exe,分别是 ABE_uTest.exe、BBE_uTest.exe、CBE_uTest.exe 和 DBE_uTest.exe。我想排除 BBE 和 CBE。在文档页面 (AzureDevOps VsTest) 上,我找到了如何排除文件。

testAssemblyVer2: | # 当 testSelector == TestAssemblies 时需要 # *test.dll # !*TestAdapter.dll # !\obj*

所以我假设只需 *_uTest.exe !BBE* !CBE* 就可以了。但我错过了一些东西,因为我无法让它发挥作用。要么什么都不过滤,要么什么都过滤。这是yaml的对应部分。

- task: VSTest@2
  displayName: VsTest - testAssemblies
  inputs:
    testSelector: 'testAssemblies'
    testAssemblyVer2: '*_uTest.exe
      !*BBE*'
    searchFolder: '$(BuildPlatform)_$(BuildConfiguration)\testbin\'

testAssemblyVer2 将是设置。我只尝试了一个排除二进制文件以使其更简单。我尝试在开头和结尾使用和不使用' 字符。也尝试在一行和单独的行中但没有成功。我总是收到这条消息:

##[warning]No test sources found matching the given filter '*_uTest.exe !BBE_uTest.exe'

使用 yaml 在 AzureDevOps 中排除文件的正确语法是什么?

【问题讨论】:

“没有成功”是什么意思?它还在运行测试吗?它是否显示错误消息?什么不工作? 谢谢@DanielMann 我更新了问题 【参考方案1】:

符号非常具体,您缺少 |并且需要将它放在几行上(可能存在其他符号,这可行)。添加了 **\ 用于在每个可能的文件夹中进行搜索:

- task: VSTest@2
inputs:
  testSelector: 'testAssemblies'
  # note the |
  testAssemblyVer2: |
    **\*_uTest.exe
    !**\*BBE*

为什么是 |,它表示您要输入几个不同的项目。 'Something something2' 的意思是寻找一个很长的名字,里面有一个空格。没有 |几行被视为 1 个输入。找不到确切的文档。

【讨论】:

以上是关于Yaml:如何排除 VSTest@2 中的一些测试的主要内容,如果未能解决你的问题,请参考以下文章

如何从android项目中的jacoco测试覆盖率报告中排除方法

如何从 tfs build 的测试结果中排除有序测试的名称?

如何配置 Monolog 从日志中排除 404 错误

Java Spring Boot 测试:如何从测试上下文中排除 java 配置类

如何在Visual Studio Test Runner中排除某些测试?

如何使用 Maven surefire 排除具有给定类别的所有 JUnit4 测试?