ios - 运行单元测试时不要启动模拟器

标签 ios xcode jenkins

一些背景:

我有一个 iOS 应用程序,其目标配置为运行单元测试。我在我的 MacBook 上运行构建自动化工具 jenkins,它会自动构建这个应用程序并运行所有测试(使用命令行 xcodebuild 工具)。

Xcode 4 一切正常。这个构建自动化工具在不同的用户下运行,并运行所有这些测试。

我最近切换到 Xcode 5,但它开始失败,因为它无法启动模拟器。

问题

我有一个配置为运行测试(逻辑测试)的单元测试方案。 A 我使用以下两种方法之一运行这些测试:

  • Xcode 中的命令 U

  • 或命令行“/usr/bin/xcodebuild -scheme UnitTests -sdk iphonesimulator -configuration Release clean build TEST_AFTER_BUILD=YES”

在这两种情况下,它都会尝试启动模拟器。但是,根据我的理解,它不需要它。无论如何,它运行在 x86 之上,并且看起来没有任何应用程序安装在模拟器上。

有没有办法摆脱这个讨厌的模拟器启动(因为它破坏了我的构建自动化)?

更新 1

似乎找到了非常相似的问题,但无法正常工作: Run logic tests in Xcode 4 without launching the simulator

更新 2

我发现非常相关且有趣的问题/答案:Apple CI / Xcode Service and Jenkins

最佳答案

使用 xCode 7 和 xCtool。

xctool 能够在没有模拟器的情况下执行单元测试。

为了让这个工作,

1。更新目标设置以在没有主机应用程序的情况下运行。

选择您的项目 --> 然后测试目标 --> 将主机应用程序设置为无。

enter image description here

<强>2。如果没有,请安装 xctool。

brew install xctool

<强>3。使用带有 xctool 的终端运行测试。

xctool -workspace yourWorkspace.xcworkspace -scheme yourScheme run-tests -sdk iphonesimulator

关于ios - 运行单元测试时不要启动模拟器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18134670/

相关文章:

ios - Xcode 7.1 运行目的地列表中的通用 iOS 设备是什么?

jenkins - 检查 Jenkins 中的差异

git - 运行 jenkins 作业的 Bitbucket webhook

hudson - jenkins什么时候读取config.xml?

objective-c - 为所有 iVar 创建属性是否有必要,甚至是良好做法?

ios - 核心蓝牙 - 在后台执行长期操作

objective-c - WiFi 上的 NSNetService 而不是蓝牙

iphone - xcode 无法编译 iOS 应用程序,在打开 .xib 或 .storyboard 文件时崩溃

ios - 在 UITextView 中向 NSString 添加外部描边

android - 线程能否安全调用 TCriticalSection.Acquire 多次?