我试图运行http调用来测试将在jenkins机器上运行的实时网络API。
这是已经使用的管道脚本。
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
?
答案 0 :(得分:1)
一种方法是使用& amp;来启动Web应用程序。最后,它将在后台运行。即。
npm start &
您可以尝试将npm start的输出重定向到这样的文本文件:
npm start > output.txt &
然后在下一步中,循环直到“已启动”消息可用,例如:
tail -f output.txt | while read LOGLINE
do
[[ "${LOGLINE}" == *"listening on port"* ]] && pkill -P $$ tail
done
代码未经测试:)