2016-07-14 7 views
0

私はジェンキンス・マシンで実行する予定のライブのWeb APIをテストするためのHTTP呼び出しを実行しようとしています。"端末"がブロックされている場合、次の段階に移動するにはどうすればいいですか?

これが使用されていますパイプラインスクリプトです。

stage 'build' 
    node { 
     git url: 'https://github.com/juliomarcos/sample-http-test-ci/' 
     sh "npm install" 
     sh "npm start" 
    } 
stage 'test' 
    node { 
     sh "npm test" 
    } 

しかし、ジェンキンスさんは、テストのステップに移動しません。ウェブアプリケーションが完全に起動した後でnpm testを実行するにはどうすればよいですか?

答えて

1

一つのアプローチは、それがバックグラウンドで実行されますので、最後に&でWebアプリを起動することです。すなわち

npm start &

あなたは、このようなテキストファイルにNPM開始の出力をリダイレクトしようとすることができます:

npm start > output.txt &

次のステップ、ループ内で「開始」のメッセージがあるまで、利用できる、のようなもの:

tail -f output.txt | while read LOGLINE 
do 
    [[ "${LOGLINE}" == *"listening on port"* ]] && pkill -P $$ tail 
done 

コードテストされていません:)

+0

これを行うと、アプリが起動手順を完了した後にのみテストが開始されることをどのように確認できますか? –

+0

私の編集を参照してください。 –

関連する問題