在运行量角器中的任何套件之前,是否可以运行一些测试或逻辑流?
例如,我想将我的量角测试分成一系列套件,以测试我的应用程序的不同方面。假设Jenkins将在部署前运行整个测试套件,但是个人开发人员只会运行与他们所做的工作有关的套件。
,但我希望我的大多数套房能够登录应用程序,并且我宁愿在每个套件中重复该登录逻辑。有没有办法进行套房的预测试,该测试在运行所有测试之前进行登录之类的东西?
我想只是在列出我在量角配置中定义我的套件的位置
suites: {
'my-profile': [
'./e2e/login/login-as-customer.e2e-spec.js',
'./e2e/my-profile/my-profile-change-password.e2e-spec.js',
'./e2e/my-profile/my-profile-change-username.e2e-spec.js'
],
'my-contacts': [
'./e2e/login/login-as-customer.e2e-spec.js',
'./e2e/my-contacts/add-contact.e2e-spec.js',
'./e2e/my-contacts/remove-contact.e2e-spec.js'
]
}
,但是问题是我不希望每次运行整个测试套件时,或者开发人员想要一起运行多个套件时,我不希望它每次重新加入。我需要的是以某种方式的套房步骤。
量角器是否可以?
您正在查找conf文件中的 onPrepare()
函数。该功能在测试套件之前运行。这是一个示例,摘自https://github.com/angular/protractor/blob/master/spec/withloginconf.js
onPrepare: function() {
browser.driver.get(env.baseUrl + '/ng1/login.html');
browser.driver.findElement(by.id('username')).sendKeys('Jane');
browser.driver.findElement(by.id('password')).sendKeys('1234');
browser.driver.findElement(by.id('clickme')).click();
// Login takes some time, so wait until it's done.
// For the test app's login, we know it's done when it redirects to
// index.html.
return browser.driver.wait(function() {
return browser.driver.getCurrentUrl().then(function(url) {
return /index/.test(url);
});
}, 10000);
}