【问题标题】:Prevent protractor from exiting before jasmine reporter completes防止量角器在茉莉花记者完成之前退出
【发布时间】:2014-11-15 02:17:06
【问题描述】:

我创建了一个执行慢速异步任务的 jasmine 报告器,但量角器在报告器的工作完成之前退出。如何让量角器等待慢速报告器完成?

在我的记者中,慢任务是由setTimeout模拟的:

// SlowReporter.js
SlowReporter.prototype.reportRunnerResults = function() {
    var p = q.defer();
    setTimeout(function() {
        console.log("Slow reporting op finished");
        p.resolve();
    }, 10000);
    return p.promise;
};

但是,当我把它接线时,

// protractor.conf.js
onPrepare: function() {
    jasmine.getEnv().addReporter(new SlowReporter());
}

..protractor 在慢速任务完成之前退出。量角器似乎不尊重记者返回的承诺。

请注意,我不是在问how to make protractor wait on an async test,而是在测试完成后如何让量角器等待茉莉记者。

【问题讨论】:

  • 它是否给出规范超时错误?如果是,那么您可以在 config.js 中使用 jasmineNodeOpts: {defaultTimeoutInterval: 20000}

标签: jasmine protractor


【解决方案1】:

FFR 通过在SlowReporter 中定义一个.completed() 方法来解决,该方法返回一个在报告者完成时解决的承诺;然后让protractor.spec.jsonCleanUp() 中返回这个承诺。仅适用于量角器 >= 1.1.0 。

对更好的答案/方法持开放态度。

【讨论】:

  • 如果你还有代码,可以分享一下这个解决方案吗?我想试试。
  • @Corey 对不起,我没有。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-01
  • 2014-03-31
相关资源
最近更新 更多