【发布时间】:2015-01-30 16:41:33
【问题描述】:
如果需要超过 1 秒,我希望每次测试都以错误终止。
我正在使用 Facebook 的 Jest 库,在 JSX 中编写测试并从 Gulp 运行它们(这意味着它们在 node.js 上运行)。
【问题讨论】:
标签: javascript node.js unit-testing timeout
如果需要超过 1 秒,我希望每次测试都以错误终止。
我正在使用 Facebook 的 Jest 库,在 JSX 中编写测试并从 Gulp 运行它们(这意味着它们在 node.js 上运行)。
【问题讨论】:
标签: javascript node.js unit-testing timeout
当然可以,但这显然取决于您的测试框架。例如,我使用的是 mocha,它同时支持 suite 和 test-specific 超时。
【讨论】:
理论上,是的。很简单:
setTimeout(function() {
// Print tests that haven't run and clear queue
}, /* timeout here */);
但在某些情况下,事件循环可能会被饿死。例如:
(function foreverRun() {
process.nextTick(foreverRun);
}());
要解决上述问题,您需要破解 Node 的内部结构,以在处理 nextTickQueue 期间强制短暂中断以检查测试状态。
对于严格的 Node 解决方案,更可靠的方法是在子进程中运行测试脚本并在超时后将其终止。
【讨论】: