相关疑难解决方法(0)

运行unittes时不要启动模拟器

一些背景:

我有iOS应用程序,目标配置为运行unitTests.我在我的MacBook上运行构建自动化工具jenkins,它自动构建此应用程序并运行所有测试(使用命令行xcodebuild工具).

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

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

问题

我有一个方案UnitTests配置为运行测试(逻辑测试).AI使用以下两种方法之一运行这些测试:

  • 在Xcode中命令U.

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

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

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

更新1

似乎找到了非常相似的问题,但无法使其正常工作: 在Xcode 4中运行逻辑测试而不启动模拟器

更新2

我找到了非常相关和有趣的问题/答案:Apple CI/Xcode Service和Jenkins

xcode ios jenkins

40
推荐指数
4
解决办法
2万
查看次数

如何让Xcode 5在Jenkins奴隶上运行iOS单元测试?

我们一直在使用Jenkins和Xcode插件来运行iOS应用程序的持续集成,包括自动执行和单元测试报告.这在Linux机器和运行Xcode 4.6.3的Mac从机上使用Jenkins运行良好.

现在我们正在寻求将设置更新为Xcode 5以支持目标iOS 7并遇到以下问题.

首先,单元测试根本不会运行,因为我们正在使用Xcode 4中不再受Xcode 4支持的RunUnitTests脚本.我按照Xcode的建议解决了这个问题,通过使用适当的方案设置工作区.测试目标.

然后我配置了Jenkins作业的Xcode步骤,并设置了自定义xcodebuild参数,test -destination platform=${DESTINATION_PLATFORM},name=${DESTINATION_NAME},OS=${DESTINATION_OS}以使其运行单元测试.

如果我运行xcodebuild命令行,Jenkins的Xcode插件在我自己的机器上的Terminal中运行,则单元测试运行,但是当Jenkins作业运行时,它会在尝试运行单元测试时失败或挂起.

我怀疑这是因为使用Xcode 5和测试buildaction而不是RunUnitTests脚本,单元测试现在在iOS模拟器中运行,这需要交互式会话,并且Jenkins从属进程正在通过Jenkins大师(Linux)的SSH运行.如果我使用Jenkins用于SSH的帐户登录到从属计算机,我可以看到iOS模拟器在单元测试运行时启动,但测试似乎没有运行且作业挂起.如果我没有登录到从机,则Jenkins作业无法运行单元测试.

有没有办法让iOS单元测试通过SSH在Jenkins从站上运行,如果没有,任何关于如何在项目必须使用Xcode 5构建时自动执行单元测试的建议?

xcode unit-testing objective-c ios jenkins

11
推荐指数
1
解决办法
7821
查看次数

标签 统计

ios ×2

jenkins ×2

xcode ×2

objective-c ×1

unit-testing ×1