ios - 无法从 Jenkins 运行脚本

标签 ios jenkins sikuli

我们在 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)

任何建议都会非常有帮助

最佳答案

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

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

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

关于ios - 无法从 Jenkins 运行脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10910733/

相关文章:

java - 如何使用 sikulix 和 java 获取 Windows 应用程序的页面加载时间?

Selenium、AutoIt、Sikuli体验比较?

java - 我们可以使用 sikuli 来自动弹出 http 吗?

objective-c - 在 Objective c 中管理内存

iphone - 了解 iOS 7 应用程序的应用程序流程。发射时会发生什么?

node.js - 读取 Jenkins 管道中的测试设置的环境变量

Jenkins 的 git 插件无法从本地计算机克隆存储库。错误代码 128

如果还没有本地的,用克隆 pull 的 Git 快捷方式?

iphone - 在类之间传递数据/异步请求/iOS

ios - 将应用程序带回前台时无法取消暂停游戏