如何使用NUnit3控制台运行器单独执行单个测试用例?
如何用NUnit3控制台运行器单独执行指定的TestCase测试用例
刚好我之前处理过类似的需求,给你几个靠谱的方法来单独运行NUnit3里的特定TestCase:
方法一:直接指定完整的测试限定名(最可靠)
NUnit3的每个TestCase都会生成一个唯一的测试名称,由**命名空间.类名.方法名(参数列表)**组成,你需要把这个完整名称传给--test参数。
比如你的测试方法如果在MyMathTests命名空间的CalculatorTests类里,对应的命令就是:
nunit3-console.exe --test="MyMathTests.CalculatorTests.DivideTest(12,3,4)" path/to/your/test.dll
⚠️ 注意:一定要替换成你自己的命名空间和类名,不然NUnit找不到对应的测试。如果测试名称里包含空格或者特殊字符,记得用双引号把整个测试名称括起来(Windows命令行和PowerShell都适用)。
方法二:用--where参数灵活过滤(更易读)
如果觉得写完整限定名太麻烦,也可以用--where参数通过条件过滤来定位测试用例,比如:
按参数列表匹配
nunit3-console.exe --where "methodname == 'DivideTest' && args == '(12,3,4)'" path/to/your/test.dll
按具体参数值匹配(更精准,适合参数有歧义的场景)
nunit3-console.exe --where "methodname == 'DivideTest' && arg0 == 12 && arg1 == 3 && arg2 == 4" path/to/your/test.dll
这里的arg0、arg1对应TestCase里的第1、第2个参数,以此类推。
小技巧:快速获取测试的完整名称
如果你不确定测试的完整限定名,可以先运行一次所有测试,控制台输出里会列出每个TestCase的完整名称,直接复制过来用就行。比如运行:
nunit3-console.exe path/to/your/test.dll
输出里会类似这样显示每个测试的名称:
MyMathTests.CalculatorTests.DivideTest(12,3,4)
MyMathTests.CalculatorTests.DivideTest(12,2,6)
MyMathTests.CalculatorTests.DivideTest(12,4,3)
直接复制你需要的那一行到--test参数里就搞定了!
内容的提问来源于stack exchange,提问作者user3035729
相关产品推荐
相关产品推荐

