You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用nunit-console筛选并运行未设置Category属性的NUnit测试用例

NUnit控制台筛选无Category测试的解决方案

要直接匹配所有未设置任何Category的测试,优先使用hascat函数的取反写法,兼容性更强,无需提前枚举所有已有Category:

nunit3-console.exe MyAssembly.dll --where "!hascat('*')"

原理解释

  • hascat('*')是NUnit测试选择语法的内置函数,表示匹配所有设置了任意Category的测试用例
  • 开头加!取反后,就会仅匹配完全没有设置过Category属性的测试,正好符合你的需求

之前写法失效的原因

你尝试的cat == null写法本身是语法正确的,匹配不到主要是两个问题:

  1. 命令漏掉了where参数前的--前缀,NUnit3控制台要求所有命名参数都需要加--前缀
  2. 命令行终端的转义冲突:
    • Windows cmd环境执行,需把where的表达式用双引号完整包裹,完整写法为:
      nunit3-console.exe MyAssembly.dll --where "cat == null"
    • PowerShell环境执行,双引号会被PowerShell提前解析,需要改用单引号包裹表达式:
      nunit3-console.exe MyAssembly.dll --where 'cat == null'

以上两种写法都可以实现需求,优先推荐!hascat('*')的写法,适配所有终端和NUnit3的所有版本。

内容的提问来源于stack exchange,提问作者MakePeaceGreatAgain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 06:36:04