Xcode / iOS:单元测试,方案和配置

时间:2013-03-06 19:32:20

标签: ios xcode

我的iOS项目有五个方案:本地开发,集成,QA,演示和制作。每种方案都使用不同的配置来控制网络轮询频率,API端点,分析等内容。

同样,我们有五个相应的目标:本地开发,集成,QA,演示和生产。每个目标都有几个用户定义的构建设置,其中包含API密钥,时序的数值等。

我们的应用程序的Info.plist文件使用${SOME_ENDPOINT_URL}等应用程序变量来绘制相应的用户定义构建设置。

要检索变量,我会执行以下操作:

[[[NSBundle mainBundle] infoDictionary] valueForKey:@"Some Endpoint URL"]

这将对应于用户定义的构建设置,如下所示:

"Some Endpoint URL" = ${SOME_ENDPOINT_URL}

我现在正在研究如何正确配置项目以执行单元和逻辑测试。

要构建测试以确定环境是否配置正确,我不确定最佳做法是什么。

  • 为每个环境构建五个额外的特定于测试的目标是否正确?
  • 或者,为每个方案覆盖测试组件的“运行操作参数”设置是否更好,并提供类似参数的内容来指定我们正在查看的方案?
  • 是否有任何现有参考资料为多个环境的iOS项目配置单元和逻辑测试?该项目的复杂性似乎超出了大多数文档的范围。

1 个答案:

答案 0 :(得分:1)

以下是我的工作。

的Info.plist

  • 创建主Info.plist文件
  • 为每个方案编写一个运行脚本(Shell脚本),通过修改主Info.plist中的设置生成特定于环境的Info.plist(使用PlistBuddy -c)
  • 将运行脚本添加到Build Phases(上面的“Compile Sources”)

.h文件

  • 在.h文件中定义配置设置(例如config.h)

    #if defined (CONFIG_FILE) 
    #import CONFIG_FILE
    #endif
    
  • 在代码中导入config.h

  • 为每个方案使用预处理器宏来选择目标.h文件。

    -DCONFIG_FILE=local-env-config.h