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()