我使用Selenium webdriver,Maven& amp;创建了一个自动测试套件。 Java.Also我已经创建了一个shell脚本来启动Web驱动程序,然后使用maven命令执行测试套件。这很有效。
但是当使用cron作业运行相同的shell脚本时,不会执行maven命令。 我看到了一些解决方案来在shell脚本中指定maven的路径。这对我来说也不起作用。
#!/斌/庆典
echo“
/bin/sh /home/loop/bin/startSelenium.sh start
”cd / home / me / projects / my_test_suite
export PATH = $ PATH:/home/me/installs/apache-maven-3.0.4/bin
mvn clean test -DsuiteXmlFile = / src / test / resources / testng.xml -Ptest -Dgroups = group0>> 〜/斌/ mvnLogGroup1.txt
我可以在这里通过cron作业运行mvn命令吗?
由于
答案 0 :(得分: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。这就是我们为clojars抓取VersionEye的方式。希望对你有所帮助。
答案 1 :(得分: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
答案 2 :(得分:0)
来自man crontab
:
cron(8)守护程序自动设置了几个环境变量。 SHELL设置为/ bin / sh,LOGNAME和HOME是从crontab所有者的/ etc / passwd行设置的。 HOME和SHELL可能会被crontab中的设置覆盖; LOGNAME可能没有。
PATH(您正在使用$PATH
)不是其中一个变量!你需要包括像Java这样的东西。或者更多。
尝试此操作:将PATH设置为空白,然后从命令行运行脚本。这应该会让您非常清楚在脚本中需要考虑的其他内容。