通过命令行向 NUnit 传递参数

发布于 2024-09-09 01:21:46 字数 148 浏览 8 评论 0原文

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

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

Is it somehow possible to pass values to NUnit tests via the command line?

My tests use a certain URL. I have different instances of my code at different URLs and would like to specify the URL via the command line. File App.config is not an option, because I want to run the tests for different URLs via a batch file.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

孤蝉 2024-09-16 01:21:46

使用环境变量来传递信息。

从命令行使用 set 或从 NAnt 使用 。然后使用 Environment.GetEnvironmentVariable() 读取该值。

Use an environment variable to pass the information.

Use set from the command-line or <setenv> from NAnt. Then read the value using Environment.GetEnvironmentVariable().

梦途 2024-09-16 01:21:46

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

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

这是来自文档

--params|p=参数

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

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

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

NUnit 3 now allows passing parameters. Here is the usage

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

From the documentation

--params|p=PARAMETER

A test PARAMETER specified in the form NAME=VALUE for consumption by tests. Multiple parameters may be
specified, separated by semicolons or by repeating the --params option
multiple times. Case-sensitive.

Here's how you can access the parameter through code:

var value= TestContext.Parameters.Get("Key", "DefaultValue");
滥情空心 2024-09-16 01:21:46

目前似乎没有解决办法。最好的选择是使用 NUnit 项目文件,修改其中的设置并将解决方案文件传递给运行器。

There seems to be no solution at the moment. The best option is to use NUnit project files, modify settings there and pass the solution file to the runner.

分开我的手 2024-09-16 01:21:46

我有类似的问题。 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 项目 XML 格式

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

I had a similar issue. The answer of Achim put me on the right track, and for other readers:

Create a file, like example.nunit, like this:

<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>

All the file / paths (of the configuration and assembly files) are relative to the location of the NUnit file. Also the App.config, App.Dev.config, etc. file are just .NET configuration files.

Next when you want to run it for a certain configuration you execute it like this:

nunit3-console.exe example.nunit /config:test

More information about the format of the NUnit file is in NUnit Project XML Format.

More information about command-line arguments is in
http://www.nunit.org/index.php?p=consoleCommandLine&r=2.2.5

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文