我遇到了一个简单的问题,我有大约5个测试成为一个组的一部分,其中一个我强迫他们失败但是我无法退出失败状态:
.goto(url)
.wait('#element')
.evaluate(fnc...)
wait('#newelement')
....
evaluate(function(){
return document.querySlector('#myid').innerText
})
.then(function(result) {
result.should.equal('1');// I know I am expecting 2
done();
})
// will never be executed.
.then.....
//抛出以下消息。 错误:超出15000ms超时。确保在此测试中调用done()回调。
没关系,但是在这个测试失败之后还需要进行其他测试,但我似乎无法继续或有一种优雅的方式来报告失败而不影响其余部分。< / p>
答案 0 :(得分:1)
如果您想强制测试失败,可以调用done
传递错误作为参数:
done(new Error('this is my error message'))
所以在你的情况下,像这样:
.goto(url)
.wait('#element')
.evaluate(fnc...)
wait('#newelement')
....
evaluate(function(){
return document.querySlector('#myid').innerText
})
.then(function(result) {
done(new Error('Please test, fail because I want you to.'));
})
// will never be executed.
.then.....
此外,作为旁注,原始代码可能无效,因为在同一个链调用上多次调用evaluate
,请参阅this answer以获取更多详细信息。