【问题标题】:xctest - preprocessor macro [duplicate]xctest - 预处理器宏
【发布时间】:2014-06-18 10:07:52
【问题描述】:

是否可以在(测试)目标设置或测试 .pch 文件中定义宏,以便将其传递给整个应用程序?
或者如果我们正在运行测试,是否已经有任何宏可用于检查(从代码中)?

例如:

#if TEST=1
  // do something
#else
  // do something else
#endif

我想要这样做的原因是在测试期间跳过一些代码、断言等(无需在每次运行测试时更改主应用程序 .pch 中的#define)。

谢谢。

【问题讨论】:

  • 您对这个问题有进一步了解吗?我想在我的代码中添加一些测试装置。但不希望它出现在生产代码中。一些扩展和辅助函数。那种东西?
  • 我个人最终使用了与此处所述类似的东西:stackoverflow.com/a/15725328/727817。另一个不错的选择是设置一个新的构建配置来测试stackoverflow.com/a/14718914/727817

标签: xcode xctest


【解决方案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 会有所不同。
猜你喜欢
  • 2015-04-15
  • 2015-07-31
  • 1970-01-01
  • 2010-09-19
  • 2020-02-09
  • 2011-01-26
  • 2013-05-13
  • 2012-05-12
相关资源
最近更新 更多