量角器-发生异步回调超时错误时

时间:2019-01-21 22:35:56

标签: angular jasmine protractor appium e2e-testing

在编写测试代码期间,有时会遇到非常严重的错误:-错误:超时-jasmine.DEFAULT_TIMEOUT_INTERVAL指定的超时内未调用异步回调。在努力解决此错误之后,我在这里和那里找到了一些解决方案,例如 Increase Time Interval值,在代码块结尾处调用done()函数等等 ,但对我没有任何作用。

我现在想知道何时发生此错误,以了解确切原因。

1 个答案:

答案 0 :(得分:1)

当您处理async/await时,这是非常常见的消息。大约有80%的用户表示您忘记了某个地方的await语句,而其他20条则是您的测试中确实需要深入分析的错误。您可以使用以下提示来改进调试过程

1)显示有关错误的更多信息-将其放入量角器conf文件中。

process.on('unhandledRejection', ({ message }) => {
  console.log('\x1b[36m%s\x1b[0m', `Unhandled rejection: ${message}`);
});

2)安装“量角器控制台”插件,以确保浏览器控制台中没有错误/拒绝(即从应用程序侧排除问题的可能性)并添加到您的配置中

plugins: [{
    package: "protractor-console",
    logLevels: [ "severe" ]
}]

3)如official guide

所示,使用Chrome调试测试

4)使用HtmlScreenshotReporter-此报告创建了一个非常好的报告,结构合理且直观

这些是可以帮助您发现问题的工具。仅当我花时间调试我进行的每个特定测试时,我才删除所有Async callback was not invoked within timeout specified by jasmine通知。这是我无需审查代码就可以给您的唯一建议。