【问题标题】:How to change the app.settings from Nunit console command line for tests如何从 Nunit 控制台命令行更改 app.settings 以进行测试
【发布时间】:2018-06-20 15:50:36
【问题描述】:

我有一组用 VS 2017,Nunit 开发的硒测试(项目类型 - 使用 .net 框架 452 的类库。在我的 OneTimeSetUp 中,我正在阅读 app.config,它定义了一些东西,例如 Web URL、数据库连接字符串、Web登录用户名/密码等

示例:

<appSettings>
    <add key="Browser" value="IExplorer" />
    <add key="User" value="xxx" />
    <add key="Password" value="xxx" />
    <add key="BaseURL" value="http://ccc.com" />
    <add key="DefaultImplicitDriverWait" value="15" />
    <add key="TestRailIntegrationValue" value="False" />
    <add key="GenerateCustomReport" value="False" />
  </appSettings>
  <connectionStrings>
    <add name="DB1" connectionString="Data Source=db_name;Initial Catalog=db_instance;User Id=userid;Password=pwd;" />

  </connectionStrings> 

然后运行测试,我使用 nunit 命令行 -- 示例

cd "C:\path-to-repo location"
packages\NUnit.ConsoleRunner.3.7.0\tools\nunit3-console pathToDll --where "cat == Demo" 

cmd /k 

现在,只要我针对一个环境,它就可以正常工作。现在,当我需要将测试切换到不同的环境时,在从命令行或 VS 2017 运行测试之前,我需要更改指向不同环境变量的 app.config bu。

那么有没有办法,我可以在命令行中将这些值作为参数传递,然后在执行任何测试之前更新app.config

如果有任何替代解决方案/建议,我很高兴得到所有建议。

【问题讨论】:

    标签: c# visual-studio selenium command-line nunit


    【解决方案1】:

    在 Nunit 3 中,他们添加了 --configfile 选项。见this小说明。

    另外here 是有关参数标志的更多信息:

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

    【讨论】:

      【解决方案2】:

      NUnit 不会以任何方式使用或修改您的配置文件。它所做的只是确保它可用于测试。

      This issue 要求添加命令行选项以在运行 NUnit 时更改配置文件。您可能希望在问题中加入您的声音。

      同时,通过 NUUnit 可用的选项是使用 --params 选项指定各个参数,例如:

      --params "Browser=IExplorer"
      

      如果您愿意自己阅读配置文件,您甚至可以使用--params 指定其名称。

      【讨论】:

      • 这是一个搁置了太久的简单更改。我会提交 PR。
      【解决方案3】:

      请考虑一下这两种方法:

      1) 看How to modify my App.exe.config keys at runtime? 您可以使用这种方法。首先在您的 CI 服务器中设置一些环境变量,读取它们并在 [OneTimSetUp] 方法中的某处更改您的 app.config 或您在测试框架中具有的任何属性。

      2) 看看这个插件https://marketplace.visualstudio.com/items?itemName=VisualStudioProductTeam.SlowCheetah-XMLTransforms 和这里http://www.c-sharpcorner.com/article/transform-config-using-slow-cheetah/ 我使用它并且非常喜欢它。在您工作中的 CI 上,您只需将目标从发布更改为您创建的任何内容,并且效果非常好。还有另一个优势 - 您可以轻松切换到 Visual Studio 中的任何 app.config 并在任何环境上运行/调试测试,只需从下拉列表中选择您的配置。

      附:在这两种情况下,您都不需要更改 Nunit 控制台命令中的任何内容

      【讨论】:

      • 感谢 SerhiiBond Perfect .. 我以前看过 SlowCheetah,但从未想到过。你的 2 想法刚刚奏效..这就是我所做的 - 我根据我的要求创建了多个 app.config 文件 - 然后将我的 nUnit 命令指向该文件夹下的 dll ..
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-02
      • 1970-01-01
      • 2011-01-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多