Как запускать файлы функций 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.

Это работает абсолютно нормально. Но я хочу прокомментировать вторую строку и указать имя базы данных во время выполнения, используя файл default.srprofile.

Я хочу выполнить файл runtests.cmd (из командной строки), используя файл default.srprofile, и передать имя базы данных во время выполнения. Можно ли этого добиться?


person user1493004    schedule 07.11.2016    source источник
comment
Что вы имеете в виду под временем выполнения? srProfile считывается в начале тестового прогона. Или вы просто хотите где-то настроить базу данных, потому что у разных разработчиков она разная?   -  person Andreas Willich    schedule 08.11.2016


Ответы (1)


Не уверен, что это поможет, но вы можете использовать файл 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;
     }
     }
person Dazed    schedule 12.11.2016