xctest - 预处理器宏
Posted
技术标签:
【中文标题】xctest - 预处理器宏【英文标题】:xctest - preprocessor macro [duplicate] 【发布时间】:2014-06-18 10:07:52 【问题描述】:是否可以在(测试)目标设置或测试 .pch 文件中定义宏,以便将其传递给整个应用程序? 或者如果我们正在运行测试,是否已经有任何宏可用于检查(从代码中)?
例如:
#if TEST=1
// do something
#else
// do something else
#endif
我想要这样做的原因是在测试期间跳过一些代码、断言等(无需在每次运行测试时更改主应用程序 .pch 中的#define)。
谢谢。
【问题讨论】:
您对这个问题有进一步了解吗?我想在我的代码中添加一些测试装置。但不希望它出现在生产代码中。一些扩展和辅助函数。那种东西? 我个人最终使用了与此处所述类似的东西:***.com/a/15725328/727817。另一个不错的选择是设置一个新的构建配置来测试***.com/a/14718914/727817 【参考方案1】:看起来你可以用与 Objective-C 非常相似的方式来做到这一点。 swift 编译器采用 -D 命令开关。为了使它适应测试,我只在测试目标构建设置中定义了我想要的文字。
说明:
Build settings for the Test Target ->
Swift Compiler Custom Flags ->
-DTEST (yes, including the -D prefix)
启用此代码:
// Objective-C and Swift
#if TEST
// Test only code version code
#else
// App only code
#endif
我在transitioning to swift的这篇文章中找到了解决方案。
【讨论】:
我相信这与在测试目标的 .pch 中设置#define
相同,它只影响测试类,而不影响实际的应用程序类。不过,我已经使用'Other C Flags'
进行了测试,也许 swift 会有所不同。以上是关于xctest - 预处理器宏的主要内容,如果未能解决你的问题,请参考以下文章