在 NUnit 3 控制台中按参数选择测试
Selecting tests by parameter in NUnit 3 console
我有使用 ValueSource
属性参数化的测试。源提供了 3 个参数(这些是 运行 测试的环境),我可以在 Visual Studio 的测试资源管理器中看到和 select 它们。
但是在使用 NUnit 控制台 运行ner 时如何 select 具体参数?我尝试了--params environmentId:prod
,但它不起作用(执行了所有三个环境的测试)。
P.S:environmentId
是我的测试方法的参数名称,"prod" 是 ValueSource
属性提供的三个值之一。
关于 --params
选项的问题隐含了一些误解。它不 select 测试但将信息传递给测试,可以使用 TestContext
访问这些信息。而且和带参数的测试用例的参数完全没有关系
您有两种方法可以到达此处:(1) 找出正确的方法来 select 从命令行测试用例,就像您当前正在尝试做的那样,或者 (2) 实际使用 --params
选项以预期的方式。请注意,这些是互斥的选项。
选择正确的案例。
每个测试用例都有一个名称,其中包括参数。您可以 select 正确的案例使用一个表达式来识别你想要的,并消除你不想要的。例如,选项 --where "test==Your.Name.Space.YourMethod"
将 select 给定方法的所有情况。对于 select 那些只有 "prod" 选项的情况,您可以使用正则表达式...也许类似于 --where "test=~/Your\.Name\.Space\.YourMethod\(prod/
假设所讨论的参数是第一个。显然,这不是一个容易输入的命令行,因此第二个选项可能更适合您。
正确使用--params
根据 environmentID
参数的名称,我猜您可能希望 运行 所有 您的测试使用相同的值而不是在测试过程中更改它 运行。这就是通过 --params
选项传递给您的应用程序的 运行 参数 的目的。使用 --params:environmentID=prod
设置测试 运行 以便任何需要正确 environmentID
的测试都可以轻松访问它。您将不再使用 environmentID
作为测试方法的 C# 参数,而是使用类似
的代码访问测试主体中的值
string environmentID = TestContext.Parameters.Get("environmentID");
您还可以向 Get
提供第二个参数,指定在未传递参数时要使用的环境。
希望这两种方法中的一种对您有用!
我有使用 ValueSource
属性参数化的测试。源提供了 3 个参数(这些是 运行 测试的环境),我可以在 Visual Studio 的测试资源管理器中看到和 select 它们。
但是在使用 NUnit 控制台 运行ner 时如何 select 具体参数?我尝试了--params environmentId:prod
,但它不起作用(执行了所有三个环境的测试)。
P.S:environmentId
是我的测试方法的参数名称,"prod" 是 ValueSource
属性提供的三个值之一。
关于 --params
选项的问题隐含了一些误解。它不 select 测试但将信息传递给测试,可以使用 TestContext
访问这些信息。而且和带参数的测试用例的参数完全没有关系
您有两种方法可以到达此处:(1) 找出正确的方法来 select 从命令行测试用例,就像您当前正在尝试做的那样,或者 (2) 实际使用 --params
选项以预期的方式。请注意,这些是互斥的选项。
选择正确的案例。
每个测试用例都有一个名称,其中包括参数。您可以 select 正确的案例使用一个表达式来识别你想要的,并消除你不想要的。例如,选项
--where "test==Your.Name.Space.YourMethod"
将 select 给定方法的所有情况。对于 select 那些只有 "prod" 选项的情况,您可以使用正则表达式...也许类似于--where "test=~/Your\.Name\.Space\.YourMethod\(prod/
假设所讨论的参数是第一个。显然,这不是一个容易输入的命令行,因此第二个选项可能更适合您。正确使用
--params
根据
的代码访问测试主体中的值environmentID
参数的名称,我猜您可能希望 运行 所有 您的测试使用相同的值而不是在测试过程中更改它 运行。这就是通过--params
选项传递给您的应用程序的 运行 参数 的目的。使用--params:environmentID=prod
设置测试 运行 以便任何需要正确environmentID
的测试都可以轻松访问它。您将不再使用environmentID
作为测试方法的 C# 参数,而是使用类似string environmentID = TestContext.Parameters.Get("environmentID");
您还可以向
Get
提供第二个参数,指定在未传递参数时要使用的环境。
希望这两种方法中的一种对您有用!