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

问题描述 投票:28回答:4

是否可以通过命令行将值传递给NUnit测试?

我的测试使用特定的URL。我在不同的URL上有不同的代码实例,并想通过命令行指定URL。文件App.config不是一个选项,因为我想通过批处理文件针对不同的URL运行测试。

testing command-line nunit nunit-console
4个回答
26
投票

使用环境变量传递信息。

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


2
投票

目前似乎没有解决方案。最好的选择是使用NUnit项目文件,在那里修改设置,然后将解决方案文件传递给运行程序。


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文件格式的更多信息,请参见NUnit Project XML Format

有关命令行参数的更多信息,请参见http://www.nunit.org/index.php?p=consoleCommandLine&r=2.2.5


1
投票

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

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

来自the documentation

-params | p = PARAMETER

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

这里是通过代码访问参数的方式:

var value= TestContext.Parameters.Get("Key", "DefaultValue");
© www.soinside.com 2019 - 2024. All rights reserved.