在jasmine reporter完成之前防止量角器退出

在jasmine reporter完成之前防止量角器退出,jasmine,protractor,Jasmine,Protractor,我创建了一个jasmine reporter,它执行一个缓慢的异步任务,但在reporter的工作完成之前,量角器已经退出。如何使量角器等慢记者完成 在我的reporter中,慢速任务由setTimeout模拟: // SlowReporter.js SlowReporter.prototype.reportRunnerResults = function() { var p = q.defer(); setTimeout(function() { console

我创建了一个jasmine reporter,它执行一个缓慢的异步任务,但在reporter的工作完成之前,量角器已经退出。如何使量角器等慢记者完成

在我的reporter中,慢速任务由
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());
}
…量角器在慢速任务完成之前退出。“量角器”似乎不尊重记者的承诺


请注意,我不是在问,而是在测试完成后如何让量角器等待jasmine reporter。

FFR通过在
SlowReporter
中定义
.completed()
方法来解决,该方法返回一个在报告器完成时解决的承诺;然后让
dragrator.spec.js
onCleanUp()
中返回此承诺。仅适用于大于等于1.1.0的量角器


有更好的答案/方法。

它是否会给出规范超时错误?如果是,那么您可以在config.js中使用jasmineNodeOpts:{defaultTimeoutInterval:20000}。如果您仍然有代码,您可以共享此解决方案吗?我想试试。@Corey,对不起,我不想。