.net 不包含TestCase过滤器在VSTest 16.6.1中不工作

sd2nnvve  于 2023-06-07  发布在  .NET
关注(0)|答案(2)|浏览(224)

根据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.

此功能是在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

但是,仍然不支持“not contains”运算符。
我试过:
1.使用VSTest的预览版(16.7)
1.在VsTest管道任务中使用“Visual Studio 2019”作为测试平台版本(而不是直接使用VSTest版本)
1.使用包含“not contains”测试过滤器的发布之前的VSTest版本,显示与预期完全相同的错误
我很困惑,是不是还有其他我不知道的依赖?这可能是微软方面的问题/错误吗?任何帮助或指针将不胜感激。

wj8zmpe1

wj8zmpe11#

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

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

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

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

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

gojuced7

gojuced72#

更新MS Test NuGet包

我在构建服务器上遇到错误Incorrect format for TestCaseFilter Error: Invalid Condition 'FullyQualifiedName!~Integration'.
我的代码使用的是MS Test和.NET 7的版本1。更新测试项目中的MS Test nuget包。
右键单击项目,选择【管理NuGet包...】

现在我的构建和测试工作了!
我以前也经历过这种情况。旧的MS Test缺少像这样的功能和[DataRow]

相关问题