2016-11-07 8 views
1

Я очень новичок в программировании Specflow/Specrun и C#. Мне нужна помощь в решении проблемы, с которой я столкнулся.Как работать с файлами функций Specflow/Specrun с динамическими значениями

У меня есть специальный файл 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 и передать имя базы данных во время выполнения. Можно ли это достичь?

+1

Что вы используете во время работы? SrProfile читается в начале теста. Или вы просто хотите настроить базу данных где-то, потому что она отличается для разных разработчиков? –

ответ

0

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

 Смежные вопросы

  • Нет связанных вопросов^_^