是否可以通过命令行将值传递给 NUnit 测试?
我的测试使用某个 URL。我的代码在不同的 URL 上有不同的实例,我想通过命令行指定 URL。文件App.config
不是一个选项,因为我想通过批处理文件对不同的 URL 运行测试。
是否可以通过命令行将值传递给 NUnit 测试?
我的测试使用某个 URL。我的代码在不同的 URL 上有不同的实例,我想通过命令行指定 URL。文件App.config
不是一个选项,因为我想通过批处理文件对不同的 URL 运行测试。
使用环境变量传递信息。
set
从命令行或<setenv>
NAnt使用。然后使用 读取值Environment.GetEnvironmentVariable()
。
NUnit 3 现在允许传递参数。这是用法
nunit3-console [inputfiles] --params:Key=Value
从文档
--params|p=参数
以 NAME=VALUE 形式指定的测试参数,供测试使用。可以指定多个参数,用分号分隔或多次重复 --params 选项。区分大小写。
以下是通过代码访问参数的方法:
var value= TestContext.Parameters.Get("Key", "DefaultValue");
目前似乎没有解决办法。最好的选择是使用 NUnit 项目文件,在那里修改设置并将解决方案文件传递给运行程序。
我有一个类似的问题。Achim 的回答让我走上了正轨,对于其他读者来说:
创建一个文件,如example.nunit
,如下所示:
<NUnitProject>
<Settings activeconfig="local"/>
<Config name="local" configfile="App.config">
<assembly path="bin\Debug\example.dll"/>
</Config>
<Config name="dev" configfile="App.Dev.config">
<assembly path="bin\Debug\\example.dll"/>
</Config>
<Config name="test" configfile="App.Test.config">
<assembly path="bin\Debug\\example.dll"/>
</Config>
</NUnitProject>
所有文件/路径(配置和程序集文件)都相对于 NUnit 文件的位置。App.config、App.Dev.config 等文件也只是 .NET 配置文件。
接下来,当您想为某个配置运行它时,您可以像这样执行它:
nunit3-console.exe example.nunit /config:test
有关 NUnit 文件格式的更多信息,请参见NUnit Project XML 格式。
有关命令行参数的更多信息, 请参见 http://www.nunit.org/index.php?p=consoleCommandLine&r=2.2.5