根据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版本,显示与预期完全相同的错误
我很困惑,是不是还有其他我不知道的依赖?这可能是微软方面的问题/错误吗?任何帮助或指针将不胜感激。
2条答案
按热度按时间wj8zmpe11#
此问题可能与您使用的VSTest版本有关。以下是我这边的一些测试:
因此,我建议您可以首先使用Windows 2019代理运行管道,以检查问题是否来自VSTest版本。然后选择正确的版本。
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]
。