是否可以在(测试)目标设置或测试.pch文件中定义宏,以便将其传递给整个应用程序?
或者是否有任何宏可用于检查(来自代码)我们是否正在运行测试?
例如:
#if TEST=1
// do something
#else
// do something else
#endif
我想要的原因是在测试期间跳过一些代码,断言等(每次运行测试时都不必在主应用程序.pch中更改#define)。
感谢。
答案 0 :(得分:4)
看起来你可以用与Objective-C非常相似的方式做到这一点。 swift编译器使用-D命令开关。为了使其适应测试,我定义了仅在测试目标构建设置中想要的Literal。
说明:
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上找到了本文的解决方案。