首页 > 解决方案 > 如何使用 --where for nunit 运行测试用例的子集

问题描述

对于我的项目,我想两次运行完全相同的测试用例,一次是在本地运行,一次是在云中并行的不同 VM 上(在我的情况下是 Azure)。

我复制了 TestCase 并标记了一个Category("Local")和另一个Category("Cloud")。因此,从控制台运行 nunit3--where="cat == Cloud"将运行每个测试的所有 TestCases,该测试具有一个或多个带有Category("Cloud").

有没有通过命令行开关只运行选定的测试用例的不同方法?

简化示例:

[TestCase(TestName = "Canary, Run in cloud."), Category("Cloud")]
[TestCase(TestName = "Canary, Run locally."), Category("Local")]
public void Canary()
{
    Assert.True(true);
}

标签: nunittestcasenunit-console

解决方案


找到了解决方法。--params:Cloud=true用作命令行参数并在代码中使用

private bool ShallRunInCloud => TestContext.Parameters["Cloud"]?.ToLowerInvariant() == "true";

推荐阅读