在C#test fixture中从Nunit3获取Params

时间:2016-07-13 08:23:04

标签: c# selenium nunit nunit-3.0

我正在使用Nunit3版本中提供的params参数来传递多个参数。

但是,我无法使用C#测试夹具获取它们。我搜索过但无法得到正确的结果。

有人可以向我提供有关如何在c#中获取这些参数参数的指示。

任何帮助将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:2)

首先,确保您使用的是NUnit控制台3.4.1和NUnit Framework 3.4.1。

--params:Code=XXX --params:Date=2011-05-16的命令行选项看起来是正确的。您还可以使用分号--params:Code=XXX;Date=2011-05-16

组合多个参数

要访问单元测试中的参数,请在测试中使用TestContext.Parameters.Get("Code")。还有string Get(string key, string default)T Get(string key, T default)执行Convert.ChangeType

目前尚未有详细记录,因此请参阅pull request that implemented the feature了解详情。

这是一个示例测试,

[Test]
public void TestCommandLineParameters()
{
    var code = TestContext.Parameters.Get("Code", "<unknown>");
    var date = TestContext.Parameters.Get("Date", DateTime.MinValue);

    TestContext.WriteLine($"Fetched test parameters {code} and {date}");
}

我使用命令行和NUnit 3.4.1运行,

nunit3-console.exe --params:Code=XXX --params:Date=2011-05-16 .\nunit-v3.dll

在输出中,我看到了

=> nunit.v3.TestParamsTest.TestCommandLineParameters
Fetched test parameters XXX and 2011-05-16 12:00:00 AM