如何 运行 一个 Cucumber (With Protractor) 场景覆盖多个文件?
How to run one Cucumber (With Protractor) scenario over multiples files?
我有像这样的 Cucumber 功能:
@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_login.html、/after_restore_password.html 等功能(这只是一个示例)。
你知道怎么做吗?
目前,我只有一个硬编码文件。显然我需要改变它。
this.Given(/^I can see the login form$/, function(done) {
this.goTo('login.html');
browser.wait(EC.visibilityOf(this.loginFormContainer));
done();
});
创建一个包含您可以访问的不同登录页面的对象。
如果有任何额外的代码需要执行,请在您的步骤定义中包含一个 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 |
我有像这样的 Cucumber 功能:
@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_login.html、/after_restore_password.html 等功能(这只是一个示例)。
你知道怎么做吗?
目前,我只有一个硬编码文件。显然我需要改变它。
this.Given(/^I can see the login form$/, function(done) {
this.goTo('login.html');
browser.wait(EC.visibilityOf(this.loginFormContainer));
done();
});
创建一个包含您可以访问的不同登录页面的对象。
如果有任何额外的代码需要执行,请在您的步骤定义中包含一个 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 |