在XCode 6.1中运行测试时,一个令人讨厌的事情是整个应用程序必须运行并启动其storyboard和root viewController.在我的应用程序中,它运行一些获取API数据的服务器调用.但是,我不希望应用程序在运行其测试时执行此操作.
随着预处理器宏的消失,对于我的项目来说最好的是要知道它是在运行测试而不是普通的启动时启动的吗?我用CMD + U和机器人正常运行它们.
伪代码将是:
// Appdelegate.swift
if runningTests() {
return
} else {
// do ordinary api calls
}
Run Code Online (Sandbox Code Playgroud) 当我在XCode 5中运行我的测试时,我的OS X应用程序的主窗口在运行测试时会在屏幕上显示几秒钟.为什么?即使我取消注释我的所有测试,它仍会打开我的主窗口.
我想在不启动模拟器的情况下使用OCUnit在Xcode 4中运行测试.请不要试图说服我,我正在进行单元测试错误或类似的事情.我喜欢用传统方式做TDD:在测试中为类编写API,然后让类通过测试.我将编写在模拟器中运行的端到端的单独测试.
如果没有办法做到这一点,那么请有人告诉我如何让测试工具不实例化整个应用程序?我的应用程序是事件驱动的,当它启动我的测试时,它会发送一堆事件.
有没有一种方法/插件可以将新的Xcode服务和/或新的Apple CI与Jenkins集成?
让Jenkins服务器+ OSX构建从属连接的主要问题ssh是单元测试不起作用,因为iOS模拟器需要一个在此配置中不存在的图形环境.
我希望可以将Xcode服务(支持单元测试)与Jenkins集成.
可能是使用Apple CI就足以满足我的需求,但这个问题的目的是将Xcode服务与Jenkins集成.
我对现有的Xcode Jenkins插件有经验,但似乎不支持全新的Xcode服务或新的Apple CI.我特别热衷于通过CI进行单元测试(使用旧方式在ssh会话中无法正常工作).
我想了解以下与Jenkins和ssh连接的构建奴隶无关的问题的信息:
关于目前与Jenkins和ssh连接的构建从站一起工作的事情的信息仍然应该与Xcode服务集成一起工作:
${BUILD_NUMBER},并且Jenkins根据其内部版本号设置此环境变量.当Apple CI执行构建时,很可能会设置内部版本号.)Apple CI == Xcode serviceApple CI 是否只使用 Xcode服务.在后一种情况下,Xcode服务就像一个智能构建从属服务器,Jenkins可能会使用它来进行构建和测试,但是自己管理构建数量和产品.有没有办法以编程方式确定在开发iOS应用程序时是否在测试目标中运行代码与常规运行目标?
我有检查这个变量是否为零的黑客,因为它只在我的测试目标中,但这看起来非常hacky.
[[[NSProcessInfo processInfo] environment] objectForKey:@"XCInjectBundle"]
Run Code Online (Sandbox Code Playgroud) 我正处于开发 iOS 应用程序的早期阶段,现在,我只想测试我的 Swift 代码的逻辑。我还不关心实际的应用程序。我在测试文件中编写了一些单元测试,但每当我运行测试套件时,它都会启动以 iPod Touch 作为目标设备的模拟器,尽管它目前与我的测试无关。有没有办法禁用它?
我尝试转到“项目”>“常规”并将主机应用程序设置为“无”进行测试,但它似乎没有执行任何操作。我不知道这是否相关,但我还在Product > Scheme > Edit Scheme下关闭了 AuthenticationUITests 。
这是我能遇到的关于这个主题的最相关的帖子,但它似乎已经过时了,因为我在那个地方找不到捆绑加载器和测试主机。
我也尝试按照这篇文章使用 xctool,但是当我尝试时brew install xctool,它说:
Warning: xctool has been deprecated because it has an archived upstream repository!
Error: xctool: no bottle available!
Run Code Online (Sandbox Code Playgroud)