Xcode:用于条件DEBUG / TEST代码的预处理器宏

前端之家收集整理的这篇文章主要介绍了Xcode:用于条件DEBUG / TEST代码的预处理器宏前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在我的代码(例如AppDelegate.m)中有不应该为单元测试编译的部分,例如
#ifndef CONFIGURATION_TESTS
// Code that should not be compiled in the Unit Tests
#endif

当您在创建新项目时选择“添加单元测试”时,目标是由Xcode设置的.
在项目文件中,我已将标志CONFIGURATION_TESTS添加到内置目标的MyAppTests的预处理器宏中,但未添加到MyApp目标.

这是我发现的许多帖子中的建议方式.

但是这不起作用,因为(我猜)MyAppTests目标将MyApp目标作为依赖关系,并且由于AppDelegate.m被添加到MyApp目标,所以使用MyApp构建设置进行编译,因此CONFIGURATION_TESTS未被定义.

在单元测试文件中,宏被定义并按预期行为(因为测试文件仅由MyAppTests目标构建)

有人知道这样做,我以为这将是一个常见的问题…

解决方法

我终于找到了答案:关键是创建一个新的构建配置(可以调用这个配置测试)

然后,相应地配置预处理器宏的值,因此对于配置调试和释放,您设置CONFIGURATION_TESTS = 0,并且对于配置测试,您设置CONFIGURATION_TESTS = 1

最后,编辑单元测试模式以使用测试作为构建配置.就是这样:P

我在blog写了一个详细的分步说明

猜你在找的iOS相关文章