.net - 不包含测试用例过滤器在 VSTest 16.6.1 中不起作用

标签 .net azure-devops azure-pipelines vstest

根据official TestCase documentation ,您可以在 TestCase 过滤器中使用“不包含”(!~) 过滤器。
我正在尝试在 Azure Devops 管道中使用此过滤器,但根据运行该管道时出现的错误,该过滤器不受支持:

##[error]Incorrect format for TestCaseFilter Error: Invalid Condition 'FullyQualifiedName!~DSN'. Specify the correct format and try again. Note that the incorrect format can lead to no test getting executed.
This functionality was added in a 16.0 preview version .
管道使用 VSTest 16.6.1,如输出中的这些行所示:
C:\agent\_work\_tool\VsTest\16.6.1\x64\tools\net451\Common7\IDE\Extensions\TestPlatform\vstest.console.exe "@C:\agent\_work\_temp\xulnpcmgdnx.tmp"
Microsoft (R) Test Execution Command Line Tool Version 16.6.1
但是,仍然不支持“不包含”运算符。
我试过了:
  • 使用 VSTest (16.7) 预览版
  • 在我的 VsTest 管道任务中使用“Visual Studio 2019”作为测试平台版本(而不是直接使用 VSTest 版本)
  • 使用包含“不包含”测试过滤器的版本之前的 VSTest 版本,显示与预期完全相同的错误

  • 我不知所措,是否还有其他我不知道的依赖?这可能是微软方面的问题/错误吗?任何帮助或指示将不胜感激。

    最佳答案

    此问题可能与您使用的 VSTest 版本有关。这是我这边的一些测试:

  • 测试执行命令行工具版本 15.9.1(托管 VS2017 代理,失败):

  • enter image description here
  • 测试执行命令行工具版本 16.6.0(托管 Windows2019,成功):

  • enter image description here
  • 测试执行命令行工具版本 16.7.0-preview-20200519-01(Self-agent,Succeeded)

  • enter image description here
    enter image description here
    因此,我建议您可以先使用 Windows 2019 代理运行管道,以检查问题是否来自 VSTest 版本。然后选择正确的版本。

    关于.net - 不包含测试用例过滤器在 VSTest 16.6.1 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62718488/

    相关文章:

    javascript - 在 javascript 中从 .NET/Razor 解析本地化数字的最佳方法是什么?

    azure - Azure Devops 中缺少克隆按钮

    azure - Azure Pipelines 中存在安全漏洞?

    azure - Visual Studio Team Services(原为 Visual Studio Online)构建无法部署 Azure 云服务

    azure - azure DevOps 管道的所有作业均无需加载源代码

    c# - 在 TreeNode (WinForms) 中访问文本选择

    c# - 如何从另一个 .NET 程序使用交互式命令行程序

    c# - 从 C# 2.0 到 C# 3.0 的过渡对于这个项目来说值得吗?

    azure - 在 Docker 中运行的自定义 Azure DevOps 构建代理上安装卷的测试容器

    azure-devops - 是否可以读取管道任务上的 PR 标签?