Исключение не обрабатывается в Cypress - PullRequest
0 голосов
/ 10 октября 2019

Я использую код ниже для обработки исключений. Но когда срабатывает исключение, выполнение прерывается.

it('Validate Login form', function () {
     cy.on('uncaught:exception', (err, runnable) => {

     done()

     return false
   })

    cy.xpath(repository.discoverMusician.pageHeading);

    cy.validateLoginForm(repository);
})

Но когда срабатывает исключение для cy.xpath(repository.discoverMusician.pageHeading);, выполнение прерывается и cy.validateLoginForm(repository); не выполняется.

Может кто-нибудь помочь, пожалуйста

1 Ответ

0 голосов
/ 11 октября 2019

Ваша проблема, вероятно, вызвана вызовом обратного вызова done в вашем обработчике исключений. Обратный вызов done передается на обратный вызов it тестового случая и предназначен для вызова для досрочного завершения теста.

Первый пример - завершить тест по ошибке, но сделать его успешным:

describe('test', () => {
    it('test', () => {
        cy.document().then( doc => {
            doc.body.innerHTML = `
                <button class="btn" onclick="throw new Error('xx')">
                    click me
                </button>
            `;
        });

        Cypress.on('uncaught:exception', () => {
            return false;
        });

        cy.log('1');
        cy.get('.btn').click();
        cy.log('2'); // won't run
    });
});

второй пример - не прерывать тестирование при ошибке, но вместо этого игнорировать ошибку:

describe('test', () => {
    it('test', (done) => {
        cy.document().then( doc => {
            doc.body.innerHTML = `
                <button class="btn" onclick="throw new Error('xx')">
                    click me
                </button>
            `;
        });

        Cypress.on('uncaught:exception', () => {
            done();
            return false;
        });

        cy.log('1');
        cy.get('.btn').click();
        cy.log('2'); // will be run
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...