Я столкнулся со странной проблемой после моего рефакторинга тестов. Я устарел везде до каждого/после каждого блока, чтобы значительно сократить время выполнения, и теперь у меня проблемы с запуском даже простых спецификаций один за другим. Я создал простую конфигурацию и спецификации.Выполнение серийной спецификации транспортира
Config:
exports.config = {
seleniumAddress: 'http://localhost:4444/wd/hub',
specs: [
'googleSpec.js',
'forgotPasswordPageTestSuite.js'
],
capabilities:
{
browserName: 'chrome'
//shardTestFiles: true,
//maxInstances: 2
},
jasmineNodeOpts: {
defaultTimeoutInterval: 360000
}
}
Spec 1:
describe("Google Spec", function()
{
browser.ignoreSynchronization = true;
browser.get('http://google.com');
browser.wait(function() {
return element(by.name('q')).isDisplayed();
}, 15000);
it('Verify search inout is presented', function()
{
expect(browser.isElementPresent(element(by.name('q'))).toBe(true);
});
});
Spec 2:
describe("Yandex spec", function()
{
browser.ignoreSynchronization = true;
browser.get('http://www.yandex.ru');
browser.wait(function() {
return element(by.id('text')).isDisplayed();
}, 15000);
});
it('Verify that search input is presented', function()
{
expect(browser.isElementPresent(by.id('text'))).toBe(true);
});
});
Если я исполняю их отдельно от использования
shardTestFiles: true,
maxInstances: 2
это просто нормально, но когда я выше конфигурации у меня есть такое исключение:
[launcher] Running 1 instances of WebDriver F.
Failures:
1) Google Spec Verify search inout is presented Message: Expected false to be true. Stacktrace: Error: Failed expectation at [object Object]. (/Users/sergeyteplyakov/WebstormProjects/e2eMPP20/googleSpec.js:13:54)
Finished in 6.339 seconds 2 tests, 2 assertions, 1 failure
[launcher] 0 instance(s) of WebDriver still running [launcher] chrome
1 failed 1 test(s) [launcher] overall: 1 failed spec(s) [launcher] Process exited with error code 1
Process finished with exit code 1
В моих реальных тестах у меня такая же проблема, когда мой спецификации похож на то, что я предоставил. Когда я смотрю, что действительно происходит по какой-то причине, метод .get (url) из 2-го spec начал выполняться до того, как 1-я спецификация закончила. Я предполагаю, что я что-то отсутствует ядро и значительное, может кто-нибудь мне точку пожалуйста)
Я попытался включить beforeAll блоки, но они не помогли. Также, когда в моем реальном тесте я просто поставил во втором пакете весь код до того, как его 1-й блок запустил до того, как он начнет работать, это действительно странно –
@SergeyTeplyakov спасибо, что если вы переместите 'browser.ignoreSynchronization = true;' на ' OnPrepare() '? – alecxe
Я был неправ, 1-й подход работал хорошо, спасибо вам большое) –