我是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文件在运行时指定数据库名称。
我想使用default.srprofile文件执行runtests.cmd
文件(来自命令行),并在运行时提供数据库名称。是否有可能实现这一目标?
答案 0 :(得分: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;
}
}