Я настраиваю тестирование e2e с транспортиром и угловым.Здесь я пишу 3 теста в комплекте.Когда есть только 2, он работает нормально.Что-то большее, чем это, это терпит неудачу с ошибкой тайм-аута.Я даже пытался реализовать функцию обратного вызова «готово», но не могу ее решить.Странно, если я переставлю тестовые примеры в порядке, который пройдут все 3 тестовых случаяНапример, см. Код ниже.
app.po.ts
import { browser, by, element } from 'protractor';
export class TestEngine {
navigateTo() {
browser.get('/');
var script = "window.localStorage.setItem('isAccepted', 'true')";
return browser.executeScript(script);
}
getParagraphText() {
return element(by.css('page-welcome p')).getText();
}
getButtons() {
return element(by.buttonText('Login')).getText();
}
getButtonsClick() {
return browser.actions().mouseMove(element(by.tagName('b'))).click();
}
}
test-e2e.spec.ts
import { TestEngine } from './app.po';
describe('Test Engine App', () => {
let page: TestEngine;
beforeEach(function (done) {
setTimeout(function () {
page = new TestEngine();
done();
}, 1);
});
//1. Promise included
it('should display the question for Validation', function (done) {
page.navigateTo();
page.getParagraphText()
.then((text) => {
expect(text).toEqual('Want to validate an engine?');
done();
});
});
// 2. Promise included
it('should display a button which is used for Validation', function (done) {
page.navigateTo();
page.getButtons().
then((text) => {
expect(text).toEqual('Login');
done();
});
});
//3. Promise not included
it('should click on the button which is used for Login', function (done) {
page.navigateTo();
page.getButtonsClick()
done();
});
});
Сценарий, когдаВ приведенных выше тестовых случаях 1,2,3 выдается ошибка, в которой указывается
Test Engine App
√ should display the question for Validation
√ should display a button which is used for Validation
× should click on the button which is used for Login
- Failed: timeout
(Session info: chrome=69.0.3497.100)
(Driver info: chromedriver=2.41.578737 (49da6702b16031c40d6xgret43e5618de0x3a32ff6c19xx7e),platform=Windows NT 10.0.16299 x86_64)
(Session info: chrome=69.0.3497.100)
(Driver info: chromedriver=2.41.578737 (49da6702b16031c40d6xgret43e5618de0x3a32ff6c19xx7e),platform=Windows NT 10.0.16299 x86_64)
From asynchronous test:
Error
at Suite.<anonymous> (D:\TESTING CLONE\e2e\e2e\test.e2e-spec.ts:33:3)
at Object.<anonymous> (D:\TESTING CLONE\e2e\e2e\test.e2e-spec.ts:5:1)
at Module._compile (module.js:649:30)
at Module.m._compile (D:\VSTS TESTING CLONE\e2e\node_modules\ts-node\src\index.ts:439:23)
at Module._extensions..js (module.js:660:10)
at Object.require.extensions.(anonymous function) [as .ts] (D:\TESTING CLONE\e2e\node_modules\ts-node\src\index.ts:442:12)
**************************************************
* Failures *
**************************************************
1) Test Engine App should click on the button which is used for Login
- Failed: timeout
(Session info: chrome=69.0.3497.100)
(Driver info: chromedriver=2.41.578737 (49da6702b16031c40d63e5618de03a32ff6c197e),platform=Windows NT 10.0.16299 x86_64)
Executed 3 of 3 specs (1 FAILED) in 5 mins 17 secs.
[16:56:48] I/launcher - 0 instance(s) of WebDriver still running
[16:56:48] I/launcher - chrome #01 failed 1 test(s)
[16:56:48] I/launcher - overall: 1 failed spec(s)
[16:56:48] E/launcher - Process exited with error code 1
Но если я запускаю все 3 отдельно, используя fit или xit для каждого сценарияпроходит, а также, если я запускаю его в порядке 1-> 3-> 2, меняя 3-й тестовый набор на 2-й, то все проходит как пакет.
Что я здесь не так делаю?Это что-то с функцией обратного вызова done ();Это расположено в правильном месте?Потому что в этом файле спецификаций я планирую иметь более 100 тестовых случаев.Все будут включать в себя обещания.