Все действия в тесте запускаются дважды, когда асинхронное использование используется в beforeEach. - PullRequest
0 голосов
/ 03 июля 2019

Я пишу E2E тесты для приложения Angular, однако все действия, вызываемые в тестах, выполняются дважды.

Я пытался удалить любые пользовательские команды, которые ранее использовал.

describe('some tests', () => {
beforeEach(async() => {
    const data = {
        'data':'someData'
    }
    cy.visit('url');
    const window = await cy.window();
    window.postMessage(JSON.stringify(data), '*');
})

it('test1', () => {
    cy.get('#login-field').type('email', {force: true});
    cy.get('#password-field').type('password', {force: true});
    cy.get('#login-button').click({force: true});
})

})

{force: true} используется, потому что в противном случае Cypress сообщает о них как о невидимых из-за overflow: hidden у одного из родителей.

Я ожидаю, что каждое действие будет выполнено один раз, ноони запускаются дважды и выполняются в одно и то же время, например, дважды запускается тип «электронная почта», и вместо поля «электронная почта» вводится «eemmaaiill».

1 Ответ

0 голосов
/ 05 июля 2019

Если кому-то будет интересно: это проблема Cypress, если мы используем async в beforeEach, то действие в тесте будет выполнено дважды.Текущее решение состоит в том, чтобы не использовать async и не перемещать код, который использует его для тестирования себя.

...