是否可以有一个场景大纲,其中每个示例都在不同的URL中运行?例如,如果示例表中的第一列是某种两位数字/字符代码,请根据该值打开不同的起始网址?具有不同URL的Specflow场景大纲
2
A
回答
2
对没错。为什么不只是设置URL的步骤,将要使用的URL分配给某个变量(在类中,在ScenarioContext.Current
中,或在自定义上下文对象中),然后在所有调用中使用此URL。在我的电话,以便格式化是一种痛苦,但这样的事情:
Given I'm using the site '<site>'
When I login
Then something should happen
Examples:
|site |
| aaa.com|
| bbb.com|
然后在给定步骤只是记录的网址,并使用该基础URL构建完整的URL的时候一步。
你的步骤类可能看起来像这样。
[Binding]
Public class Steps
{
Private string baseUrl;
[Given ("I'm using the site '(.*)'")]
Public void GivenImUsingTheSite(string baseUrl)
{
This.baseUrl=baseUrl;
}
[When ("I log in")
Public void WhenILogIn()
{
String URL=baseUrl + "\login";
....login
}
}
0
考虑以下方案概要:
Scenario Outline: Each page has an help option
Given I am on the '<PageName>' page that has id '<Id>'
Then I expect an help option
Examples:
| PageName | Id |
| Home | 0 |
| Products | 5 |
| FAQ | 42 |
然后你就可以做出让步是这样的:
[Given(@"I am on the '(.*)' page that has id '(.*)'")]
public void GivenIAmOnThePageThatHasId(string friendlyName, string id)
{
// pageids are shaped like 'http://www.example.com/pageid?4'
var myUrl = @"http://www.example.com/pageid?" + id;
Console.WriteLine("Navigating to the {0} page following url {1}", friendlyName, myUrl);
NavigateToUrl(myUrl);
}
相关问题
- 1. Specflow - 场景大纲不生成示例步骤
- 2. BDD Specflow - 场景大纲其中文本跨越多行
- 3. [小黄瓜/ Specflow]:如何编写复杂类型的场景大纲
- 4. Specflow:为许多场景纲要维护一个示例表
- 5. Specflow:如何将一个示例表应用于多个场景大纲
- 6. 更新SpecFlow方案大纲的变化
- 7. 如何解决具有太多参数的SpecFlow场景轮廓?
- 8. 具有两个标签的Specflow场景打开两个窗口
- 9. 可能用KIF创建一个具有多个示例的场景大纲?
- 10. 机器人框架中带有小黄瓜的场景大纲
- 11. 在场景大纲中有未定义的方法`file_colon_line'
- 12. SpecFlow仅调用场景
- 13. “情景”在黄瓜“场景大纲”中的优势是什么?
- 14. 如何使用不同参数重新运行黄瓜场景大纲?
- 15. 为什么我的方案大纲没有在SpecFlow中调用?
- 16. 黄瓜场景大纲与示例:未能创建场景跑步者
- 17. 的多维场景勾勒出Specflow
- 18. Specflow - “场景”之间的状态
- 19. 如何在使用场景大纲时改进specflow中的自动生成名称
- 20. 为什么Specflow试图多次执行相同的场景?
- 21. 是否可以写两个不同的集情景大纲例
- 22. 在specflow场景之间共享数据
- 23. 为SpecFlow场景准备数据
- 24. 如何获取场景大纲示例表?
- 25. 将值列表传递给Cucumber场景大纲
- 26. 从场景大纲中执行特定示例
- 27. 使用Specflow行在整个Specflow场景中运行?
- 28. JavaFX场景构建器:具有与AnchorPane不同的根节点
- 29. 在不同的场景
- 30. 大纲一组路径具有相同属性
的事情是,我们正在测试多个网站,所以网站会是这样: http://www.aaa.com http://www.bbb.com HTTP ://www.ccc.com 他们将运行相同的步骤,只是登录步骤之前的不同起始URL。 – AutomatedOrder
我们使用[app.config](http://stackoverflow.com/questions/13043530/what-is-app-config-in-c-net-how-to-use-it)区分测试环境之间的设置。如果您将用户名与testenvironment和testenvironment连接到一组参数(如URL),则每个用户都可以拥有其他设置,并可以在瞬间改变测试环境。在'[BeforeTestRun]'钩子中,您可以获得用户名为'Environment.UserName'的环境,并在configfile中搜索正确的设置。在静态对象中使用这些设置或者在'ScenarioContext'中注入它们。 – AutomatedChaos