无法在 MAC 上使用 jenkins 在模拟器上运行测试用例

Posted

技术标签:

【中文标题】无法在 MAC 上使用 jenkins 在模拟器上运行测试用例【英文标题】:Not able to run test case on Simulator using jenkins on MAC 【发布时间】:2017-06-17 14:21:36 【问题描述】:

在 jenkins 的模拟器上运行 XCTest 测试用例时出现以下错误:

操作无法完成。 (OSStatus 错误 -10810。)

这是因为 Jenkins 作为守护进程运行。因此,我按照this link 中的说明进行了所有更改,以使其在启动时启动。

但在进行所有更改后,Jenkins 进程在重启后仍无法启动。

还检查了/var/log/Jenkins/Jenkins.log的所有者,它是正确的。

注意:MAC 操作系统 - Seirra 10.12.3

【问题讨论】:

我强烈感觉 jenkins 正在运行(尝试从服务器仪表板检查节点状态并尝试在 jenkin slave 上执行简单命令以验证)。请在从 Jenkins 执行 XCTest 之前验证 SIMULATOR 在运行测试时是否正在运行 你能显示你用来运行测试的命令吗? @SACHIN 当我尝试执行测试用例时,两者都在运行。 【参考方案1】:

因此,由于您没有准确指定您的设置,因此我需要根据对您的设置的猜测给出答案。

我认为您正在使用 xcode plugin 和 Jenkins 来执行与您的 xcode 项目相关的所有内容

因此,当您在build 标签下工作时,您将拥有xcode plugin

打开Advanced xcode build options 标签并导航至custom xcodebuild arguments

在这里,我们将告诉插件在您希望运行测试的情况下它需要运行什么。为此,我们将使用

test -destination 'platform=ios Simulator,id=<yourID>'

这将告诉插件它应该在哪个平台上运行测试以及它需要知道哪个模拟器的 ID。

为了检索正确的 id 打开你的终端并运行命令

xcrun simctl list 这将为您返回所有模拟器的列表。选择您想要的设备并获取它的 ID。把这个放在<yourID>的位置

所以它看起来像这样

test -destination 'platform=iOS Simulator,id=FEF05FDC-56BD-48B9-BDFD-210CCFF5BC37'

保存并再次运行,看看它现在是否有效。

【讨论】:

感谢回复!!是的,我正在使用 xcode 插件并使用您提到的用于测试的相同命令。这里的问题是,我的测试用例是 UI 测试用例,当我尝试在模拟器上运行时它失败了。这是因为模拟器运行在与 Jenkins 不同的线程上。 我自己在运行 UI 测试时遇到了问题,老实说,我还没有完全弄清楚哪里出了问题。

以上是关于无法在 MAC 上使用 jenkins 在模拟器上运行测试用例的主要内容,如果未能解决你的问题,请参考以下文章

Linux机器无法连接Jenkins的mac机器连接中的slave?

无法在 Mac 模拟器上输入 editText

NSUserDefaults 没有在 Jenkins 的模拟器中保存内存

ios 在mac上配置Jenkins自动化打包

通过jenkins在mac mini上运行ios构建时获取java.lang.InterruptedException

无法在 Mac 中启动 android 模拟器