2014-01-23 5 views
1

Selenium webdriver, Maven & Java를 사용하여 자동화 된 테스트 스위트를 만들었습니다. 웹 드라이버를 시작한 다음 maven 명령을 사용하여 테스트 스위트를 실행하기위한 쉘 스크립트를 만들었습니다. 이것은 잘 작동합니다.cron 작업에서 Maven 명령 실행

그러나 cron 작업을 사용하여 동일한 쉘 스크립트를 실행하면 maven 명령이 실행되지 않습니다. 셸 스크립트에서 maven에 대한 경로를 지정하는 몇 가지 솔루션을 보았습니다. 나에게도 해당되지 않습니다.

#/빈/bash는이

에코 "/bin/sh /home/loop/bin/startSelenium.sh start는"

CD/홈/ME/프로젝트/my_test_suite는

수출 PATH = $ 경로 :!/집/나// 설치 아파치 받는다는-3.0.4/빈

MVN 깨끗한 테스트 -DsuiteXmlFile =/SRC/테스트/자원/testng.xml -Ptest -Dgroups = GROUP0 >> ~/빈/mvnLogGroup1.txt

여기 cron 작업을 통해 mvn 명령을 실행하려면 어떻게해야합니까?

감사합니다.

+0

일반적으로 cron 작업에서 환경은 일반 사용자와 다르게 보입니다. 그게 이유라고 생각합니다. – khmarbaise

답변

0

스크립트에서 전체 경로와 함께 maven을 실행하면 도움이 될 수 있습니다. man crontab에서
/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

은 :

여러 환경 변수들은 cron (8) 데몬에 의해 자동으로 설정됩니다. SHELL은/bin/sh로 설정되고 LOGNAME 및 HOME은 crontab 소유자의/etc/passwd 행에서 설정됩니다. HOME 및 SHELL은 crontab의 설정에 의해 무시 될 수 있습니다. LOGNAME은 할 수 없습니다.

경로 (사용중인 $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 

/opt/mvn에 Maven이 설치되어 있습니다. crontab의 항목은 다음과 같습니다.

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

이 항목은 우분투에서 사용할 수 있습니다. 그것이 VersionEye에 대한 clojars의 크롤링 방법입니다. 희망은 당신을 도울 수 있습니다.

관련 문제