Mocha.js 如何使mocha测试在Puppeter pageerror上失败

Mocha.js 如何使mocha测试在Puppeter pageerror上失败,mocha.js,puppeteer,Mocha.js,Puppeteer,我正在用摩卡和木偶师来测试一个页面。如果页面抛出未捕获的异常,我希望测试失败 这就是我迄今为止所尝试的: it('应该失败,因为页面有错误',async()=>{ const browser=wait puppeter.launch({}); const page=wait browser.newPage(); 第页('pageerror',(e)=>{ //TODO:让测试以某种方式失败 投掷e; }); 等待页面。转到('http://example.com/page-that-throws

我正在用摩卡和木偶师来测试一个页面。如果页面抛出未捕获的异常,我希望测试失败

这就是我迄今为止所尝试的:

it('应该失败,因为页面有错误',async()=>{
const browser=wait puppeter.launch({});
const page=wait browser.newPage();
第页('pageerror',(e)=>{
//TODO:让测试以某种方式失败
投掷e;
});
等待页面。转到('http://example.com/page-that-throws-an-error');
});
当我运行
mocha
时,此测试成功,但在我的终端中留下一个
未处理的PromisejectionWarning


我认为我不能使用
done(error)
回调,因为我已经在使用一个异步函数,mocha会抱怨
错误:解析方法被过度指定了
,我意识到我可以跟踪页面抛出的错误,然后在测试结束时检查页面是否抛出任何错误

it('应该失败,因为页面有错误',async()=>{
const browser=wait puppeter.launch({});
const page=wait browser.newPage();
常量pageErrors=[];
第页('pageerror',(e)=>{
页面错误。推送(e);
});
等待页面。转到('http://example.com/page-that-throws-an-error');
for(页面错误的常量){
投掷e;
}
});

这是可行的,但是测试只有在最后检查没有错误时才会失败。理想情况下,我希望在页面抛出错误时找到一种测试失败的方法。

我意识到我可以跟踪页面抛出的错误,然后在测试结束时检查页面是否抛出任何错误

it('应该失败,因为页面有错误',async()=>{
const browser=wait puppeter.launch({});
const page=wait browser.newPage();
常量pageErrors=[];
第页('pageerror',(e)=>{
页面错误。推送(e);
});
等待页面。转到('http://example.com/page-that-throws-an-error');
for(页面错误的常量){
投掷e;
}
});

这是可行的,但是测试只有在最后检查没有错误时才会失败。理想情况下,我希望找到一种方法,使测试在页面抛出错误时立即失败。

It()
之外设置
pageErrors
更有意义,因为这样您也可以在其他
It()
中使用它。例如,当您有一个单击某个内容的测试时,您还希望在通过
puppeter
单击某个内容后运行
For
循环。我找不到方法来远程
页面的侦听器功能。在
…在
It()
之外有
pagers
更有意义,因为这样你也可以在其他
It()
中使用它。例如,当您有一个单击某个内容的测试时,您还希望在通过
puppeter
单击某个内容后运行
For
循环。我找不到办法远程调用
页面的侦听器功能。。。