Mocha 和 NightmareJS-继续测试

Mocha and NightmareJS- continue test

我 运行 遇到了一个简单的问题,我有大约 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.....

// 抛出以下消息。 错误:超时超过 15000 毫秒。确保在此测试中调用了 done() 回调。

没关系,但是在这个失败后我还需要进行其他测试,但我似乎无法继续或无法以优雅的方式报告失败而不影响其余部分。

如果您想强制测试失败,您可以调用 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,请参阅 答案了解更多详情。