如何使用dotnet test --filter筛选名称含空格的F#单元测试
筛选F#带空格测试用例的方法
你给出的F#测试用例使用双反引号包裹带空格的测试名,这类测试会直接将反引号内的完整字符串作为测试的DisplayName,直接使用dotnet test的DisplayName筛选规则匹配即可。
示例测试代码:
[<Fact>] let ``When passing A to function B it returns C``() = Assert.True(true)
方法1:完全匹配测试名
将筛选条件整体用引号包裹,避免空格被shell识别为参数分隔符,即可直接命中目标测试:
# 适用于bash、zsh、Windows cmd等环境 dotnet test --filter "DisplayName=When passing A to function B it returns C" # 适用于Windows PowerShell环境 dotnet test --filter 'DisplayName=When passing A to function B it returns C'
方法2:模糊匹配
如果不需要完全匹配,可以使用~运算符做包含匹配,只要筛选字符串是测试名的子集即可命中:
dotnet test --filter "DisplayName~passing A to function B"
注意事项
- 不需要将测试名中的空格替换为下划线或其他字符,F#双反引号定义的测试名会保留原始空格格式,直接匹配原始字符串即可
- 筛选条件必须整体用引号包裹,否则会因为空格拆分参数导致筛选规则解析失败
内容的提问来源于stack exchange,提问作者Wallace
相关产品推荐
相关产品推荐

