Есть несколько тестов, которые запускаются на сервере приложений (JBoss); мы хотим интегрировать эти тесты в Jenkins.Запуск процесса в зависимости от фонового процесса
В Дженкинс есть эти шаги (все шаги Ant шагов):
- ... (другие шаги)
- запуска сервера в фоновом режиме
- выполнения тестов
- остановка сервера
- ... (другие этапы)
Необходимо запустить сервер в ba ckground, чтобы выполнять следующие задачи. Я написал следующий сценарий, чтобы имитировать это:
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 запускает сервер и после его запуска он хранит идентификатор процесса виртуальной машины Java в jboss.pid.
В обычном режиме (процесс переднего плана) JBoss занимает около 100 с, но здесь он принимает значение, зависящее от аргумента сна. Если я положил 200 с, то это займет от ~ 190 до 210 с, если оно составляет 300 с, оно занимает 290 - 310 с; проблема в том, что если тесты запускаются до запуска сервера, они явно терпят неудачу. Есть ли способ синхронизировать это? Или, может быть, еще один способ сделать это?
Зачем вам нужно раскошелиться run.sh? –
Происходит ли run.sh или что-то из этого запуска? Если так, у вас может быть что-то здесь, которое следит за чем-то в этом журнале .. скажите «началось» или что-то там, где он печатает, заявив, что он готов к работе ... затем пусть сценарий продолжается .. а не просто спать. –
@EarlGray Потому что, если бы это был процесс переднего плана, он продлился бы бесконечно в Дженкинсе, а затем тесты не были бы запущены. – m3th0dman