Protractor 如何在多个文件上运行一个Cucumber(带量角器)方案?
我有这样一个黄瓜特征:Protractor 如何在多个文件上运行一个Cucumber(带量角器)方案?,protractor,cucumber,e2e-testing,cucumberjs,gulp-protractor,Protractor,Cucumber,E2e Testing,Cucumberjs,Gulp Protractor,我有这样一个黄瓜特征: @MainSuite Scenario: Verify that user can login Given I can see the login form Then I set a username And I set a password And I click in Login button Then I see the "wrong-password" message 我需要检查,用户可以登录在5个不同的页面。 我需要在5个不同的地方运行该功
@MainSuite
Scenario: Verify that user can login
Given I can see the login form
Then I set a username
And I set a password
And I click in Login button
Then I see the "wrong-password" message
我需要检查,用户可以登录在5个不同的页面。
我需要在5个不同的地方运行该功能。
这就像,我需要在/login.html、/old\u login.html、/after\u restore\u password.html等等中运行该功能(这只是一个示例)
你知道怎么做吗
目前,我只有一个硬编码的文件。显然我需要改变它
this.Given(/^I can see the login form$/, function(done) {
this.goTo('login.html');
browser.wait(EC.visibilityOf(this.loginFormContainer));
done();
});
创建一个对象,其中包含可以转到的不同登录页面 如果需要执行任何额外的代码,请在步骤def中包含if语句
this.Given(/^I can see the "(.*)" login form$/, function(loginPage, done) {
var logins = {
login : "login.html",
afterpasswordreset: "after-password-reset.html"
}
loginPage = loginPage.toLowerCase().replace(" ", "");
this.goTo(logins[loginPage]);
browser.wait(EC.visibilityOf(this.loginFormContainer));
done();
});
为每个登录变体创建单独的场景或功能文件,或者简单地为它们创建场景大纲
编辑
下面是我将如何实现场景大纲:
@MainSuite
Scenario Outline: Verify that user can login
Given I can see the "<loginType>" login form
And I set a username
And I set a password
When I click in Login button
Then I see the "wrong-password" message
Examples:
| loginType |
| Login |
| After Password Reset |
@MainSuite
场景大纲:验证用户是否可以登录
给定我可以看到“”登录表单
我设置了一个用户名
我设置了密码
当我点击登录按钮时
然后我看到“密码错误”的消息
示例:
|登录类型|
|登录|
|密码重置后|
Nop。您将有两个给定规则的执行,但下一行只有一个(When's和then's),这是什么意思?给定的时间不一定总是三人一组。这本身就是一种误解。它必须具有足够的描述性才能遵循,这就是为什么“And”和“But”语法规则已经就位的原因。你将如何在你的提案中写下你的建议?(用例子编辑你的答案。你会发现有一个问题。)我想我理解你所说的2次执行给定步骤的意思,但接下来的每一行只执行一次。对于场景大纲,您可以编写相同的场景,但需要使用示例表(如答案所示)进行细微调整。这实际上会在有非标题行的情况下运行场景,并使用它运行的场景中的行值在表中向下移动。如果步骤相同,这对整个站点的登录非常有效。你就是那个人。我没有意识到“情景大纲”的存在。非常感谢你!