gpt4 book ai didi

javascript - 运行单元测试时出现语法错误后 PhantomJS 退出

转载 作者:数据小太阳 更新时间:2023-10-29 04:21:30 24 4
gpt4 key购买 nike

我们正在构建服务器上结合使用 Karma 和 PhantomJS 来运行我们的 Jasmine 单元测试。在 Chrome 上本地运行测试工作正常,那里没有发生错误(这是一个不同的问题)。这是正在发生的事情:

在执行的某一时刻,测试遇到“未定义”错误并简单地停止:

PhantomJS 1.9.7 (Mac OS X) ERROR
TypeError: 'undefined' is not an object (evaluating 'dropScope.resize')
at /Users/nwinkler/workspaces/.../foo.js:250
PhantomJS 1.9.7 (Mac OS X): Executed 654 of 1221 ERROR (14.512 secs / 14.386 secs)
DEBUG [karma]: Run complete, exitting.
DEBUG [launcher]: Disconnecting all browsers

即使在使用 --force 标志运行 karma 时,它仍然会在此时退出。

有没有办法让 Karma/PhantomJS 继续运行测试而不在此时停止?为什么 PhantomJS 无法从这个错误中恢复?

我不是在为 undefined 错误寻找解决方案,那是一个不同的主题 - 我只是想了解为什么 PhantomJS 和 Karma 在此时退出并且不继续剩余的单元测试。

最佳答案

我通常使用这段代码来警告错误并恢复运行(phantomjs)

phantom.onError = function(msg, trace) {
var msgStack = ['PHANTOM ERROR: ' + msg];
if (trace && trace.length) {
msgStack.push('TRACE:');
trace.forEach(function(t) {
msgStack.push(' -> ' + (t.file || t.sourceURL) + ': ' + t.line + (t.function ? ' (in function ' + t.function +')' : ''));
});
}
console.error(msgStack.join('\n'));
//phantom.exit(1); // do not stop
};

如果您使用的是页面对象:

page.onError = function(msg, trace) {
// never display errors
var msgStack = ['SITE ERROR: ' + msg];
if (trace && trace.length) {
msgStack.push('TRACE:');
trace.forEach(function(t) {
msgStack.push(' -> ' + (t.file || t.sourceURL) + ': ' + t.line + (t.function ? ' (in function ' + t.function +')' : ''));
});
}
console.error(msgStack.join('\n'));
}

关于javascript - 运行单元测试时出现语法错误后 PhantomJS 退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25863715/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com