我正在努力让詹金斯明白。我有一套selenium测试,可以通过Eclipse构建和运行,也可以通过ant的命令行构建和运行这些测试,但每当我尝试Jenkins时,它们都会失败。Jenkins的控制台报告说,在我的build.xml文件中定义的ws.jar的值不存在;但是该目录确实存在!同样,从命令行构建没有问题。
任何建议都将不胜感激,因为我已经尝试解决这个问题几天了。
谢谢。
我的build.xml文件:
<property environment="env"/>
<property name="ws.home" value="${basedir}"/>
<property name="ws.jars" value="/Users/username/Documents/All JAR Files/All in one place"/>
<property name="test.dest" value="${ws.home}/build"/>
<property name="test.src" value="${ws.home}/src"/>
<property name="ng.result" value="test-output"/>
我在build.xml文件中创建了一个名为path的新目标。这是我和詹金斯一起跑步时的输出。
Started by user anonymous
Building in workspace /Users/<user>/local_repo/qa-automation/selenium-java/my-projects
[my-projects] $ /Users/Shared/Jenkins/Home/tools/hudson.tasks.Ant_AntInstallation/Install_automatically/bin/ant path
Buildfile: /Users/<user>/local_repo/qa-automation/selenium-java/my-projects/build.xml
path:
[echo]
[echo] My path - /Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/bin:/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/bin:/usr/bin:/bin:/usr/sbin:/sbin
[echo]
BUILD SUCCESSFUL
Total time: 0 seconds
Finished: SUCCESS
我怀疑这是由ws.jars
路径中的空格引起的。您应该通过添加来转义这些空格,尝试更改路径:
<property name="ws.jars" value="/Users/username/Documents/All JAR Files/All in one place"/>
这个:
<property name="ws.jars" value="/Users/username/Documents/All JAR Files/All in one place/"/>
感谢大家的建议。我有一段时间没有想过这个问题,但昨晚我有一些时间,能够再次解决这个问题。事实证明,正如"rgulia"所指出的,这与在非交互式shell中执行的Jenkins作业有关。因此,最后,我尝试将我的ws.jar目录复制到/Users/Shared/Jenkins,将所有者更改为"Jenkins",然后,我的构建得以继续
最初的错误信息太误导人了。这并不是说该目录不存在,而是"jenkins"没有访问权和/或权限。我希望这些信息能帮助其他人。