我正在尝试使用量角器为我们的某个页面进行e2e测试。 这些页面在周围系统的iframe中运行。
因此,为了能够测试我的页面,我必须在“它('概述打开......)之前做所有的事情。我不是说我必须按照我的方式去做。如果有的话更好的方法,请告诉我。
现在我的问题是“在”概述打开“中的测试之前运行了”errandClose“。 我做错了什么或误解了量角器是如何工作的。
describe('toplevel test', function() {
var login = new loginPage();
var role = new roleSelectionPage();
var errand = new overViewAndErrand(login.getBaseUrl());
beforeEach(function() {
login.getPage(); //Goes to login page and logs in
});
it('should log in', function () {
expect(element(by.model("therole")).isDisplayed());
describe('Select role', function() {
beforeEach(function () {
role.selectRole(); //Selects role on page after login and ends up at next page
});
it('Role selected', function() {
expect(element(by.css('a[href*="/OverviewNext"]')) !== undefined);
describe('Open overview', function() {
beforeAll(function() {
errand.open('name of errand'); //Selects errand and clicks on button, iframe i opened
});
afterEach(function() {
errand.close(); // Leaves the iframe and clicks on remove errand
});
it ('Overview opened', function() {
describe('Test form', function() {
browser.sleep(5000);
it ('test', function() {
browser.sleep(500);
element(by.model("modelvalue")).sendKeys('Ture Trana').then(function() {console.log('Ture Trana')});
});
});
});
});
});
});
});
});
作为对扁平问题的回应。
我希望能够运行我的测试是这样的
login.getPage();
role.select('role1');
errand.create();
begin
test 1
...
test n
end
errand.save();
role.select(role 2);
errand.open(previous errand);
begin
test 1
...
test n
end
login.logout();
所有selectRole,createErrand,openErrand都涉及到至少一个页面并单击某些按钮并在列表中选择。
答案 0 :(得分:0)
你不应该在其中嵌套describe()()。
您应该在开始新测试之前关闭此测试 示例:在开始新描述之前应该关闭它。
it('Role selected', function() {
expect(element(by.css('a[href*="/OverviewNext"]')) !== undefined);
答案 1 :(得分:0)
以下是嵌套描述的示例,适用于我。
describe('overview page', () => { let hostUrl = configMock[0].response.data.URL; beforeAll(() => { //do magic }); describe('all statement cards', () => { beforeAll(() => { browser.get(`${hostUrl}/z/y/1/g`); browser.waitForAngular(); }); describe('Campaign overview', () => { beforeEach(() => { //before each magic }); it('has correct data for Delivered', () => { expect(delivered.getText()).toEqual('1.6k'); }); }); }); });
从这开始,我认为你可以根据自己的需要进行调整。