从 C# 测试夹具中的 Nunit3 获取参数
Fetch Params from Nunit3 in C# test fixture
我正在使用Nunit3版本提供的params参数来传递多个参数。
但是,我无法使用 C# 测试夹具获取它们。我已经搜索过,但无法得到正确的结果。
有人可以向我提供有关如何在 C# 中获取这些参数的指示。
如有任何帮助,我们将不胜感激。提前致谢。
首先,确保您使用的是 NUnit 控制台 3.4.1 和 NUnit 框架 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
我正在使用Nunit3版本提供的params参数来传递多个参数。
但是,我无法使用 C# 测试夹具获取它们。我已经搜索过,但无法得到正确的结果。
有人可以向我提供有关如何在 C# 中获取这些参数的指示。
如有任何帮助,我们将不胜感激。提前致谢。
首先,确保您使用的是 NUnit 控制台 3.4.1 和 NUnit 框架 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