2016-12-29 2 views
0

私はprotractor.confファイルに次の記者を持っている:約束事は、ジェンキンスジョブのexitCodeを変更します。これを防ぐ方法は?

var promise1 = new Promise(function (resolve) { 
    reporter1.afterLaunch(resolve.bind(this, exitCode)); 
}); 

var promise2 = new Promise(function (resolve) { 
    reporter2.afterLaunch(resolve.bind(this, exitCode)); 
}); 

return Promise.all([promise1, promise2]); 

上記記者のそれぞれがptor.confファイル内afterlaunchが実行された後に実行することが予想される、独自のafterlaunchを持っています。

これはJenkinsの継続的な統合ジョブの一部です。つまり、テストが失敗してジョブの終了コードが上書きされた場合でも、プロセスの終了コードが0になるように約束が解決されるということです。それで、正当な失敗であっても、ジーンズは仕事全体をPASSEDと表示します。上記のレポートに渡されている元の値exitCodeを保存して、jenkinsジョブが期待通りに機能するようにする必要があります。どうしたらこれを防ぐことができますか? exitCodeを想定

+0

の現在の値に解決されますか?分度器ではどのようなテストフレームワークを使用していますか? – cnishina

+0

これは正常に動作するジャスミン記者ですが、私はプロセスの終了コードを変更しないことを約束した返品が必要です – pj013

+0

プロミスは拒否していますか? 'reporter.afterLaunch'はエラーを投げることができますか?もしそうでなければ、私はPromiseが意図したとおりに働いていると言います。 –

答えて

0

resolve.bind(this, exitCode)がそれらVARS(promise1とpromise2)は時間とEXITCODEに

ように変更約束宣言された時点で、その最初のパラメータexitCodeの値にバインドされている機能を返すNumberありますreporter1.afterLaunchコールバックが発生したときに約束した値に反映されません。

つまり、約束が作成されたときにexitCodeがゼロであると仮定すると、解決コードの値は0になります

に変更されました 一方

var promise1 = new Promise(function (resolve) { 
    reporter1.afterLaunch(() => resolve(exitCode)); 
}); 

または

var promise1 = new Promise(function (resolve) { 
    reporter1.afterLaunch(function() { 
     resolve(exitCode); 
    }); 
}); 

記者がこれですどのEXITCODE

関連する問題