Specflow:对场景和场景大纲使用相同的步骤定义
Posted
技术标签:
【中文标题】Specflow:对场景和场景大纲使用相同的步骤定义【英文标题】:Specflow: using same step definition for scenario and scenario outline 【发布时间】:2016-02-13 16:40:53 【问题描述】:我的功能文件包含一个用于成功登录的“场景”测试和一个用于测试应该不成功的多个登录详细信息的“场景大纲”测试。
@web
Scenario: Successful login
Given I have entered username 'tomsmith' and password 'SuperSecretPassword!' into the application
When I login
Then I should be informed that login was successful
@web
Scenario Outline: Unsuccessful login
Given I have entered username <username> and password <password> into the application
When I login
Then I should be informed that login was unsuccessful
Examples:
| testing | username | password |
| invalid combination 1 | test | test |
| special characters | $$$ | SuperSecretPassword! |
我希望两者都使用相同的步骤定义(因为它们只是传递参数)
我的步骤定义是:
[Given(@"I have entered username '(.*)' and password '(.*)' into the application")]
public void GivenIHaveEnteredUsernameAndPasswordIntoTheApplication(string p0, string p1)
login = new LoginPage();
login.with(p0, p1);
问题在于场景大纲测试没有运行,它们返回“待处理”错误:待处理:没有为一个或多个步骤找到匹配的步骤定义
并建议步骤定义应为:
[Given(@"I have entered test and test into the application")]
有人可以帮忙吗?
【问题讨论】:
【参考方案1】:你的问题在这一行:
Given I have entered username <username> and password <password> into the application
应该是
Given I have entered username '<username>' and password '<password>' into the application
您只是错过了'
标记
【讨论】:
顺便说一句,我很想把所有场景都放到大纲中,并有一个额外的列,其中包含true
或false
的结果并将最后一步更改为@ 987654326@ 但 YMMV
谢谢山姆,现在可以了。我也会看看你的建议来结合场景,因为这更有意义!再次感谢
谢谢山姆。我还不能投票,因为我的声誉
以上是关于Specflow:对场景和场景大纲使用相同的步骤定义的主要内容,如果未能解决你的问题,请参考以下文章