Javascript 在Cypress中不处理异常
我使用下面的代码来处理异常。但当异常触发时,执行被中止Javascript 在Cypress中不处理异常,javascript,cypress,Javascript,Cypress,我使用下面的代码来处理异常。但当异常触发时,执行被中止 it('Validate Login form', function () { cy.on('uncaught:exception', (err, runnable) => { done() return false }) cy.xpath(repository.discoverMusician.pageHeading); cy.validateLoginForm(repos
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.discovermusic.pageHeading)触发异常时代码>,执行被中止并且cy.validateLoginForm(存储库)代码>未执行
有人能帮忙吗?您的问题可能是由调用异常处理程序中的done
回调引起的。done
回调被传递给it
测试用例的回调,并被调用以提前终止测试
第一个示例-终止错误测试,但使其成功:
description('test',()=>{
它('test',()=>{
cy.document().然后(doc=>{
doc.body.innerHTML=`
点击我
`;
});
on('uncaught:exception',()=>{
返回false;
});
cy.log('1');
cy.get('.btn')。单击();
cy.log('2');//无法运行
});
});
第二个示例-不要终止错误测试,而是忽略错误:
description('test',()=>{
它('测试',(完成)=>{
cy.document().然后(doc=>{
doc.body.innerHTML=`
点击我
`;
});
on('uncaught:exception',()=>{
完成();
返回false;
});
cy.log('1');
cy.get('.btn')。单击();
cy.log('2');//将运行
});
});
中止是什么意思?有错误吗?另外,该done()
从何而来?当发生异常时,执行将终止。我引用了下面的链接:done
回调被传递给it
回调,应该调用它来终止测试。我很惊讶它没有抛出,因为您没有将它声明为参数(您确定您发布的代码是实际代码吗?)。无论如何,如果不想提前终止测试,不要调用done()
。