在茉莉花记者完成之前防止量角器退出

时间:2014-11-15 02:17:06

标签: jasmine protractor

我创建了一个执行慢速异步任务的茉莉花记者,但是在记者的工作完成之前,量角器正在退出。如何让量角器等慢速记者完成?

在我的记者中,慢速任务由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());
}

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

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

1 个答案:

答案 0 :(得分:0)

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

向更好的答案/方法开放。