Objective c 单元测试目标c代码时如何禁用日志记录
我需要在自动运行单元测试时禁用日志记录,以便显著提高测试速度(~20s vs 0.374s,现在只有几个测试,但测试代码中有一个大循环) 我尝试在测试代码头中定义宏,如下所示:Objective c 单元测试目标c代码时如何禁用日志记录,objective-c,unit-testing,logging,Objective C,Unit Testing,Logging,我需要在自动运行单元测试时禁用日志记录,以便显著提高测试速度(~20s vs 0.374s,现在只有几个测试,但测试代码中有一个大循环) 我尝试在测试代码头中定义宏,如下所示: #define UNIT_TESTING 在要测试的代码中,我首先检查是否定义了这样的宏: #ifndef UNIT_TESTING NSLog("whatever log"); #endif 但它似乎不起作用,我猜这是因为我没有在要测试的代码中导入测试代码头。我不能这样做,因为这样即使不是单元测试也不会打印日志 我
#define UNIT_TESTING
在要测试的代码中,我首先检查是否定义了这样的宏:
#ifndef UNIT_TESTING
NSLog("whatever log");
#endif
但它似乎不起作用,我猜这是因为我没有在要测试的代码中导入测试代码头。我不能这样做,因为这样即使不是单元测试也不会打印日志
我对objective c比较陌生,来自Java背景,我猜头/宏定义有问题
还有一个问题是,我是否需要为单元测试定义一个宏,难道还没有类似的东西吗?您需要在单元测试目标的构建设置中定义
单元测试
在左窗格中选择项目,然后选择单元测试目标,然后选择生成设置-->所有-->预处理器宏。您需要在单元测试目标的生成设置中定义单元测试
在左窗格中选择您的项目,然后选择单元测试目标,然后构建设置-->所有-->预处理器宏。请注意,不是每次要记录某项内容时都要测试单元测试
,而是可以有条件地定义一个来定义MYLOG(…)(NSLog(u VA_ARGS))
或定义MYLOG(…)
。此外,如果您使用日志记录来打印调试信息,则应改用交互式调试器;您将获得对流程的更多控制,而这个问题就消失了。请注意,您可以有条件地定义一个来定义MYLOG(…)(NSLog(u VA_ARGS_u))
或#定义MYLOG(…)
。此外,如果您使用日志记录来打印调试信息,则应改用交互式调试器;你会对整个过程有更多的控制,这个问题就消失了。是的,谢谢。对于绝对初学者来说,可能值得一提的是,您需要首先选择Build Settings页面下的All选项卡,这样预处理器选项将可见。是的,它可以工作,谢谢。对于绝对初学者来说,可能值得一提的是,您需要首先选择Build Settings页面下的All选项卡,这样预处理器选项将可见。