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

Jos*_*VdM 6 .net vstest azure-devops azure-pipelines

根据官方的 TestCase 文档,您可以在 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.
Run Code Online (Sandbox Code Playgroud)

此功能是在 16.0 预览版中添加的。管道使用 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
Run Code Online (Sandbox Code Playgroud)

但是,仍然不支持“不包含”运算符。

我试过了:

  1. 使用 VSTest (16.7) 的预览版
  2. 在我的 VsTest 管道任务中使用“Visual Studio 2019”作为测试平台版本(而不是直接使用 VSTest 版本)
  3. 使用包含“不包含”测试过滤器的发布之前的 VSTest 版本,显示与预期完全相同的错误

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

Lan*_*SFT 0

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

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

在此输入图像描述

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

在此输入图像描述

  • 测试执行命令行工具版本16.7.0-preview-20200519-01(自行代理,成功)

在此输入图像描述

在此输入图像描述

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