2014-01-23 156 views
1

我已經使用Selenium webdriver創建了一個自動化測試套件,Maven & Java.Also我創建了一個shell腳本來啓動web驅動程序,然後使用maven命令執行測試套件。這很好。從cron作業執行Maven命令

但是,當使用cron作業運行相同的shell腳本時,maven命令不會執行。 我看到了一些解決方案,在shell腳本中爲maven指定路徑。那也不適合我。

#/斌/慶典

回聲 「/bin/sh /home/loop/bin/startSelenium.sh start

CD /家/我/項目/ my_test_suite

出口PATH = $ PATH:/首頁/我/安裝/ Apache的行家-3.0.4/bin中

MVN乾淨的測試-DsuiteXmlFile =/SRC /測試/資源/的testng.xml -Ptest -Dgroups = GROUP0 >>〜/斌/ mvnLogGroup1.txt

在這裏可以通過cron作業運行mvn命令?

感謝

+0

通常在cron作業中,環境看起來與普通用戶不同。我想這可能是原因。 – khmarbaise

回答

0

希望運行在你的腳本可以幫助整個路徑的行家。
/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

若干環境變量由cron(8)守護程序自動設置。 SHELL設置爲/ bin/sh,並且LOGNAME和HOME從crontab所有者的/ etc/passwd行設置。 HOME和SHELL可能會被crontab中的設置覆蓋; LOGNAME不可以。

PATH(您正在使用$PATH)不是這些變量之一!你將需要包含諸如Java等可能更多的東西。

嘗試此操作:將PATH設置爲空白,然後從命令行運行腳本。這應該給你一個很好的主意,你需要在你的腳本中進行說明。

2

我有同樣的問題,我通過將mvn調用放入shell腳本並從cron調用shell腳本來解決它。這種方式的優點是可以在shell腳本中設置環境變量。這是我的shell腳本:

#!/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 

這對我在Ubuntu上適用。這就是我們如何抓取clojarsVersionEye。希望對你有所幫助。