通过命令行将参数传递给NUnit

时间:2010-07-06 18:35:57

标签: testing command-line nunit nunit-console

是否有可能通过命令行将值传递给NUnit测试?我的测试使用某个URL。我在不同的URL上有不同的代码实例,并希望通过命令行指定URL。 App.config不是一个选项,因为我想通过批处理文件运行不同URL的测试。

4 个答案:

答案 0 :(得分:26)

环境变量。

使用命令行中的set或来自nant的<setenv>。然后使用Environment.GetEnvironmentVariable()读取值。

答案 1 :(得分:2)

目前似乎没有解决方案。最好的选择是使用NUnit项目文件,在那里修改设置并将解决方案文件传递给跑步者。

答案 2 :(得分:1)

我有类似的问题,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文件格式的更多信息https://github.com/nunit/docs/wiki/NUnit-Project-XML-Format

有关命令行参数的详细信息 http://www.nunit.org/index.php?p=consoleCommandLine&r=2.2.5

答案 3 :(得分:1)

NUnit3现在允许传递参数。这是用法

nunit3-console [inputfiles] --params:Key=Value

documentation

  

-params | p =参数

     

以NAME = VALUE形式指定的测试参数,供测试使用。可能有多个参数   指定,用分号分隔或通过重复--params选项   多次。区分大小写。

以下是通过代码访问参数的方法:

var value= TestContext.Parameters.Get("Key", "DefaultValue");