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

zer*_*287 2 vstest azure-pipelines

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

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

测试程序集版本2: | # 当 testSelector == TestAssemblies 时需要
# *test .dll
# ! *TestAdapter.dll
#!
\对象*

所以我认为只需 a*_uTest.exe !BBE* !CBE*就可以了。但我错过了一些东西,因为我无法让它发挥作用。它要么不过滤任何内容,要么过滤所有内容。这是 yaml 的相应部分。

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

testAssemblyVer2将是设置。我尝试只使用一个排除二进制文件以使其更简单。我尝试过'在开头和结尾有或没有角色。还尝试了一行和单独一行,但没有成功。我总是收到这样的消息:

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

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

小智 5

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

- task: VSTest@2
inputs:
  testSelector: 'testAssemblies'
  # note the |
  testAssemblyVer2: |
    **\*_uTest.exe
    !**\*BBE*
Run Code Online (Sandbox Code Playgroud)

为什么|?它表示您想要输入几个不同的项目。“Something Something2”的意思是寻找一个很长且包含空格的名称。如果没有这|几行,则被视为 1 个输入。请参阅文档