2014-01-23 3 views
1

Я создал автоматический тестовый набор с использованием Selenium webdriver, Maven & Java. Также я создал сценарий оболочки, чтобы запустить веб-драйвер, а затем выполнить тестовый набор, используя команды maven. Это хорошо работает.Выполнение команды Maven из cron job

Но когда тот же сценарий оболочки запускается с использованием задания cron, команды maven не выполняются. Я видел некоторые решения для указания пути для maven в скрипте оболочки. Это также не работает для меня.

#/бен/Баш

эхо "/bin/sh /home/loop/bin/startSelenium.sh start"

кд/главная/мне/проекты/my_test_suite

экспорт PATH = $ PATH:/главная/мне/устанавливает/апач-Maven-3.0.4/бен

МВН чистый тест -DsuiteXmlFile =/SRC/тест/ресурсы/testng.xml -Ptest -Dgroups = group0 >> ~/bin/mvnLogGroup1.txt

Что я могу сделать здесь, чтобы запускать команды mvn через работу cron?

Благодаря

+0

Обычно в задачах cron среда выглядит не так, как при обычном пользователе. Полагаю, это может быть причиной. – khmarbaise

ответ

0

Надежда работает на Maven с всем пути вашего сценария может помочь.
/home/me/installs/apache-maven-3.0.4/bin/mvn clean test -DsuiteXmlFile=/src/test/resources/testng.xml -Ptest -Dgroups=group0 >> ~/bin/mvnLogGroup1.txt

+0

Я пробовал этот Фидель. Однако выполнение команд mvn – kushan

0

От man crontab:

Некоторые переменные окружения устанавливаются автоматически хрон (8) демона. SHELL установлен в/bin/sh, а LOGNAME и HOME установлены из строки/etc/passwd владельца crontab. HOME и SHELL могут быть переопределены настройками в crontab; LOGNAME не может.

PATH (вы используете $PATH) не является одной из этих переменных! Вам нужно будет включить такие вещи, как Java и, возможно, больше.

Попробуйте это: установите PATH в пустую, а затем запустите свой скрипт из командной строки. Это должно дать вам неплохую идею о том, что еще нужно учитывать в вашем скрипте.

2

У меня была такая же проблема, и я решил ее, поставив вызов mvn в сценарий оболочки и вызвав скрипт оболочки из cron. Преимущество этого способа состоит в том, что вы можете настроить переменные среды в сценарии оболочки. Это вот мой сценарий оболочки:

#!/bin/bash 

export PATH=$PATH:/opt/mvn/bin:/usr/bin 
export M2_HOME=/opt/mvn 
export M2=/opt/mvn/bin 
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/ 

/opt/mvn/bin/mvn -f /mnt/crawler/versioneye_maven_crawler/pom.xml crawl:clojars 

У меня установлен Maven в/opt/mvn. Запись в crontab выглядит так:

1 1 * * * /mnt/crawler/clojars.sh >> /mnt/crawler/clojars.txt 

Это работает для меня на Ubuntu. Вот как мы сканируем clojars за VersionEye. Надеюсь, что это поможет вам.