使用dotnet test --filter
选项,我如何过滤f#定义的测试名称,其中包括名称中的空格字符?
[<Fact>]
let ``When passing A to function B it returns C``() =
Assert.True(true)
我如何运行这个特定的测试?
您可以通过使用"contains">(~
)操作符(对于fqdn是隐含的)并使用逻辑-and(&
)操作符替换所有空格(或其他无效字符)来解决此问题,如:
dotnet test --filter "When&passing&A&to&function&B&it&returns&C"
对于其他--filter
谓词,例如。[Category="spacious testcase"]
会变成:
--filter "category~spacious&category~testcase"
原因:
dotnet test
命令使用test_adapters来解析过滤器表达式,截至2022年12月,来自VisualStudio(默认)和NUnit3的适配器都失败,谓词右侧有空格,nunit/NUnit3 -vs-adapter#876中报告。只保留"好的部分";rhs-value和and -ing在一起,您在选择所需的测试用例方面达到了一定的准确性。