Ваша проблема, вероятно, вызвана вызовом обратного вызова 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
});
});