在应用程序服务器(JBoss)中运行了一些测试;我们希望将这些测试集成到Jenkins中。
在Jenkins中有以下步骤(所有步骤都是Ant步骤):
服务器需要在后台启动,以便让以下任务完成工作。我编写了以下脚本来模仿这个:
export LAUNCH_JBOSS_IN_BACKGROUND=1
./run.sh &
sleep 400
cd /testTriggerLocation
ant run-tests
kill `cat $jBossHome/4.0.5/bin/jboss.pid`
run.sh启动服务器,启动后它将jVM进程id存储在jboss.pid中。
以正常方式(前台进程)JBoss需要大约100秒才能启动,但在这里它需要一个取决于睡眠参数的值。如果我放200秒需要大约190到210秒,如果它是300秒需要290 - 310秒;问题是如果在服务器启动之前触发测试,它们显然会失败。有没有办法同步这个?或者也许是另一种方法吗?
答案 0 :(得分:0)
您可能希望使用一个简单的流程管理器,例如supervisord或God,它可以在您运行测试时为您守护进程。
就我而言,使用上帝我会跑:
god -c my-project.god
ruby test-runner.rb
god terminate