如何在Xcode 7中动态更改单元测试的目标?

时间:2015-12-30 22:54:38

标签: ios xcode unit-testing

我有一个项目有多个不同的目标/方案(在编写这个问题时大约有38个),我试图让单元测试在所有不同的目标上正常工作。我让一些目标工作,并尝试将我的测试目标添加到所有不同的方案,但看起来当测试运行的每个方案,他们实际上在同一个原始目标上运行。

查看项目文件,我发现有一个与我的测试目标关联的特定主机应用程序,并且在构建设置中,Bundle Loader和Test Host指向同一个主机应用程序。

有没有办法覆盖每个方案的那些值,以针对当前方案的构建目标运行测试?或者以其他方式设置单个测试目标以跨多个构建目标运行?

2 个答案:

答案 0 :(得分:5)

如果从命令行运行测试,或者从Jenkins等CI工具运行测试,则可以指示xcodebuild使用您提供的构建设置。一个简单的用法示例是:

xcodebuild -scheme SomeScheme test TEST_HOST=target

您可以从Xcode控制几乎(如果不是)任何构建设置,例如代码覆盖生成,构建目录,派生数据目录,代码签名身份等。

答案 1 :(得分:1)

使用Xcode服务器运行测试时,可以选择方案。

请参阅WWDC 2014继续整合谈话,了解如何设置

https://developer.apple.com/videos/play/wwdc2014-415/

它正在使用Xcode 6,但它与Xcode 7的过程非常相似

同时检查来自apple的此CI(继续集成)指南 https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/xcode_guide-continuous_integration/adopt_continuous_integration.html