objective-c - Xcode 项目如何以编程方式检测目标或如何使用环境变量

标签 objective-c configuration xcode4 integration-testing

我想做一个应用程序测试,解析一些 json,存储到核心数据,并读出一些对象。

我的代码如何知道它是作为测试的一部分运行还是正常运行?只是通过某种方式知道“我们是否在测试目标中”?因为应用程序在启动时会启动一堆请求,以使用来自服务器的信息填充我的核心数据。我不希望它在我的测试期间这样做。我想启动该应用程序,从文件中读取 HARDCODED json,并使用与其他方法相同的方法将其存储到核心数据中,然后验证结果。

如果有人可以解释如何在每个目标的基础上传递特定的键值对,这些键值对可以从应用程序中读取,我会更加高兴。

最佳答案

没关系...发现它是在“方案”中设置的。

例如,如果您希望 TARGET=TEST 在测试期间可用,而 TARGET=RUN 在运行期间显示,只需在您的 Scheme > Environment Variables > Name/Value 中设置即可。

然后在您的应用中您可以:

[[[NSProcessInfo processInfo] environment] objectForKey:@"TARGET"]

将build设置与预处理器宏一起使用对我不起作用 b/c 我的测试目标(用于应用程序/集成测试)取决于我的主要(非测试)目标,因此首先构建主要目标,然后运行,并且你最终得到了主要的目标预处理器宏,即使你在你运行的目标中定义的宏之后。如果我在这里遗漏了什么,请有人随时解释。

关于objective-c - Xcode 项目如何以编程方式检测目标或如何使用环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6964630/

相关文章:

iphone - 如何使用 "images"组来存储iPhone应用程序图像

.net - 是否需要 "close".net 配置

xcode - 当项目文件更改时,如何防止 Xcode 4 与 git 分支崩溃?

Xcode 4.1 代码签名问题

java - 超越 .properties 的比较

iOS 4 应用程序图标不显示

objective-c - iOS-从导航工具栏按钮通过TableView显示UIPopoverController

ios - 使用默认应用程序 iOS 从本地文件系统打开文件

iphone - 使用 Time Profiler 分析的审查方法

iphone - 我可以在iPhone Simulator的配置文件中使用数据吗?