【问题标题】:User Defined Build Settings in Test Targets?测试目标中的用户定义构建设置?
【发布时间】:2013-12-09 18:42:33
【问题描述】:

我的单元测试中有以下代码:

#ifndef SERVER_TEST
    NSLog(@"\n\n!!!--- YOU ARE RUNNING TESTS IN STUB MODE ---!!!\n\n!!!--- Server Responses will be stubbed ---!!!\n\n");
#else
    NSLog(@"\n\n!!!--- YOU ARE RUNNING TESTS IN LIVE MODE ---!!!\n\n!!!--- Server Responses will be live ---!!!\n\n");
#endif

SERVER_TEST 在我的测试目标的用户定义设置中的构建设置下定义。

当我运行测试时,#ifndef SERVER_TEST 总是返回 True。任何想法为什么?

谢谢?

【问题讨论】:

  • 不,我没有。与 Grzegorz 的回答相比,使用自定义配置有什么优势?
  • 如果您想在应用代码中使用相同的定义来有条件地编译,例如,在测试运行期间自定义日志记录,自定义配置是最好的管理方式。

标签: ios unit-testing build-settings ifndef


【解决方案1】:

您应该将此标志保留为预处理器宏而不是用户定义的设置。

【讨论】:

  • 成功了!有什么理由可以这样做,而不是用户定义的设置?
  • 用户定义的设置更多地用于保存变量值 - 您可以通过 $(VARIABLE NAME) 从代码中读取它们。 #ifdef 是预处理器宏,因此应该使用它。您可以将它们结合起来,并在 UserDefinedSettings 中定义变量值,并在预处理器宏中将它们用作 $(VARIABLE_FROM_USER_DEFINES)。用户定义的设置不会自动转换为预处理器宏,除非您在宏部分定义它们。
猜你喜欢
  • 2016-02-05
  • 1970-01-01
  • 2013-08-24
  • 2014-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多