我对以下 bash 脚本有疑问:
#Install and start application
./gradlew assemble
java -jar bignibou-server/build/libs/bignibou-server.jar&
#Run end2end tests
node_modules/.bin/protractor bignibou-client/protractor.conf.js
该脚本的第一部分启动一个 java 应用程序,第二部分对该 java 应用程序运行 end2end 测试。
问题在于 end2end 测试在 java 应用程序真正正确启动之前运行。
bash 可以帮我吗?使用&
是我的问题的原因。结束命令的正确方法是什么java -jar
?
答案1
&
您对第一个进程的后台使用在这里是正确的,因为我认为bignibou-server
需要在测试期间运行?
到目前为止,在开始测试之前引入延迟的最简单方法是使用 sleep 命令:
./gradlew assemble
java -jar bignibou-server/build/libs/bignibou-server.jar &
sleep 60
node_modules/.bin/protractor bignibou-client/protractor.conf.js
这会在测试开始前增加 60 秒的延迟。请参阅man sleep
获取更多信息。