如何运行带有动态值的Specflow/Specrun特性文件



我是Specflow/Specrun和c#编程的新手。我需要帮助来解决我所面临的问题。

我有一个Specrun功能文件查询数据库。下面是特性文件的代码:

Scenario Outline: Ensure all rows are correctly inserted on in the table
    Given I am connected to "Database-XYZ"
    When I run a script to ensure all rows are inserted for <tableName> of a <schemaName>
    Then All tables have correct <columnCount> count.

这绝对没问题。但是我想对第二行进行注释,并在运行时使用默认值指定数据库名称。srprofile文件。

我想使用默认执行runtests.cmd文件(从命令行)。Srprofile文件,并在运行时提供数据库名称。这有可能实现吗?

不确定这是否有帮助,但你可能想使用app.config。我设置了数据库和环境,然后从一个步骤调用它。通过这种方式,您可以根据测试环境创建调用并设置数据库,只需更改app.config中的值。你可以像下面这样做。

 app.config
 <add key="DatabaseTest" value="myDBConnectionString" />
 <add key="DatabaseDev" value="myDBConnectionString" />
 <add key="Environment" value="test" />
 Step:
 using System.Configuration; //make sure you have this included to use ConfigurationManager
    [Given(@"I am connected to my environment database")]
    public void GivenIAmConnectedToMyEnvironmentDatabase()
    {
     var myEnv = ConfigurationManager.AppSettings["Environment"];
     switch (myEnv)
     {
       case "test":
         var  _testDatabase = ConfigurationManager.AppSettings["DatabaseTest"];
         //create db connection 
         break;
       case "dev":
          var _devDatabase = ConfigurationManager.AppSettings["DatabaseDev"];
          //create db connection 
          break;
     }
     }

相关内容

  • 没有找到相关文章

最新更新