【问题标题】:Unable to execute shell script on slave with Jenkins无法使用 Jenkins 在 slave 上执行 shell 脚本
【发布时间】:2014-03-28 00:20:06
【问题描述】:

我正在尝试通过 Jenkins 在从属设备上运行 JUnit 测试。从站配置成功,主站似乎识别了从站的工作区,但无法通过 Build 下的“Execute Shell”执行 java 命令。没有从源代码管理中提取代码,因此没有构建。这是一项旨在仅在从属设备上运行测试的作业。

Building remotely on qa-slave in workspace /home/ubuntu/Desktop
[Desktop] $ /bin/sh -xe /tmp/hudson2639231287347256677.sh
+ ./run.sh
Error: Could not find or load main class org.junit.runner.JUnitCore
Build step 'Execute shell' marked build as failure
Finished: FAILURE

如果我将 run.sh 替换为

,也会出现同样的错误
java org.junit.runner.JUnitCore OneGateTesting.TestSuiteRunner

我可以在从属设备上本地运行它。

【问题讨论】:

  • 您使用什么帐户登录并运行它?尝试使用 jenkins 用户登录并运行 java 。让我们知道您的观察结果
  • 我使用我用来 ssh 到从站的帐户。我注意到我没有“jenkins”用户,但 user.name 是 master 上的 tomcat7(根据 jenkins systemInfo),我不知道密码是什么。

标签: shell jenkins slave


【解决方案1】:

我通过在 Linux 计算机上为“其他”组授予与包含测试的文件夹的所有者和组相同的权限来解决此问题。有了这个,我不必 sudo -u jenkins 来运行主人的测试。此外,我必须在此测试脚本中包含导出 CLASSPATH 的内容,因为它无法获取 .bashrc 文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-31
    • 1970-01-01
    • 2017-03-27
    相关资源
    最近更新 更多