2

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

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

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

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

4

1 回答 1

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")。还有 astring Get(string key, string default)和 aT Get(string key, T default)做 a Convert.ChangeType

它还没有很好的文档记录,因此请参阅实现该功能的拉取请求以获取更多信息。

这是一个示例测试,

[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
于 2016-07-13T11:48:59.010 回答