【问题标题】:Yaml: How to exclude some tests in VSTest@2Yaml:如何排除 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 我更新了问题

标签: azure-pipelines vstest


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2014-04-08
    • 1970-01-01
    • 2015-05-23
    • 1970-01-01
    • 2016-11-29
    • 1970-01-01
    • 2017-03-02
    • 2020-11-16
    • 2022-08-22
    相关资源
    最近更新 更多