【问题标题】:unable to run scripts from jenkins无法从詹金斯运行脚本
【发布时间】:2012-07-07 06:41:56
【问题描述】:

我们在 MAC OSX 10.7.3 上使用 sikuli 工具进行移动自动化我已经编写了一个 shell 脚本来打开模拟器并在模拟器上运行脚本:

SikuliScript.sh 
/Users/ezprintsqa/Downloads/FoneMonkey/bin/iphonesim launch /Users/ezprintsqa/Documents/Xcode/DerivedData/SnapCards-btmjdowsgmixpvdyfxfvhxtoihab/Build/Products/Debug-iphonesimulator/SnapCardsFoneMonkey.app&

/Users/ezprintsqa/Downloads/Sikuli-IDE.app/sikuli-ide.sh -r /Users/ezprintsqa/Downloads/SikuliWorkSpace/SnapcardsTestSuite1.sikuli

当我从命令行执行时,我可以看到模拟器打开并且脚本在模拟器上执行。 但是当我从 Jenkins 运行时,我收到以下错误:

[JavaAppLauncher Error] CFBundleCopyResourceURL() failed loading MRJApp.properties file
[DEBUG] Could not start simulator session: Error Domain=DTiPhoneSimulatorErrorDomain     Code=5 "Operation failed with underlying error 4294956486." UserInfo=0x100305c70    {NSLocalizedDescription=Operation failed with underlying error 4294956486.,    NSUnderlyingError=0x100300610 "The operation couldn’t be completed. (OSStatus error     -10810.)"}
[LaunchRunner Error] No main class specified
[JavaAppLauncher Error] CallStaticVoidMethod() threw an exception
Exception in thread "main" java.lang.NullPointerException
at apple.launcher.LaunchRunner.run(LaunchRunner.java:113)
at apple.launcher.LaunchRunner.callMain(LaunchRunner.java:51)
at apple.launcher.JavaApplicationLauncher.main(JavaApplicationLauncher.java:61)

任何建议都会很有帮助

【问题讨论】:

  • 根据您的脚本,我猜测模拟器正在当前目录中查找 MRJApp.properties 文件,默认情况下始终是 Jenkins 工作区。在启动之前尝试使用 cd 切换到相应的目录。
  • 我尝试添加 cd 但问题仍然存在。你能建议我用任何其他解决方案吗
  • 我根据过去在这里看到的问题进行猜测,但这听起来像是权限问题。您是否使用运行 jenkins 的同一用户安装了 java 和 sikuli?
  • 没有 jenkins 安装在使用 /testqa 安装 sikuli 和 ios 的 /shared/jenkins 上。我也尝试使用“testqa”用户安装 jenkins,但仅运行下载的包本身就是为 jenkins 创建一个新用户
  • 可以与不同的用户一起运行,但您需要授予 Jenkins 用户对某些文件的读取权限,并且可能还对某些文件授予读/写权限。不幸的是,我对 Sikuli 不够熟悉,无法告诉您哪些文件需要更改权限。您可以通过使用 Jenkins 用户手动运行脚本并检查它们是否失败来证明这实际上与权限相关。

标签: ios jenkins sikuli


【解决方案1】:

这绝对看起来像是权限问题。 Mac 的官方 Jenkins 安装程序将 Jenkins 设置为作为用户“daemon”或用户“jenkins”运行。您需要使 Jenkins 所需的工具对该用户可读和可执行。此外,它们需要位于该用户可读和可执行的目录中。

但是,即使您修复了权限,您的测试运行也可能会遇到更多问题。 Mac 的官方 Jenkins 安装程序将 Jenkins 设置为作为启动守护程序运行。它们在系统上下文中运行,它们无法访问任何桌面或 GUI 会话,这意味着无法在屏幕上绘制窗口 => 任何显示窗口的工具,如 iPhone Simulator 或 Sikuli 都会失败。

您可以尝试我的非官方 Jenkins.app,它应该可以解决您的问题。它可以在https://github.com/stisti/jenkins-app 获得(在“下载”选项卡下下载。)

【讨论】:

  • 这个解决方案很有帮助。感谢您的回复
猜你喜欢
  • 1970-01-01
  • 2012-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多