3

我在禁用某些代码行以进行测试时遇到问题。

我有 2 个目标 - 第一个是我的产品,第二个是我的 KIF 测试目标。在 KIF 测试目标中,宏定义为 KIF=1 在产品目标中,宏定义为 KIF=0

然后代码包含在以下内容中:

#ifndef KIF
.... some code.....
#endif

不幸的是,此代码不适用于任何目标。

可能是因为产品目标设置在 KIF 目标的目标依赖项中?

你能帮我解决我的问题吗?

4

2 回答 2

2

这比我想象的要容易。转到您的项目 > 配置并通过点击加号“+”按钮 > 重复调试配置创建新配置,然后您可以创建新变量,如 TESTING 并仅为您的配置定义它。下一步是包含在#if 您的代码中并更改方案中的配置。

#if TESTING
{
...some code for testing needs...
}
#else
{
...your regular code...
}
#endif

在 Product > Scheme > Edit Scheme > Test 中,将 Build Configuration 更改为您自己的并进行测试。

于 2013-12-20T06:41:51.603 回答
1

这对我来说适用于 UnitTest 作为预构建预处理器宏。

#ifdef TEST
#endif

如果您想要自定义构建的自定义变量,请执行以下操作:

  1. 转到目标/构建设置/预处理器宏
  2. 添加所需的变量:MYTESTVARIABLE
  3. 现在在代码中你可以使用它

.

#ifdef MYTESTVARIABLE 
//some code here
#endif
于 2013-11-21T09:32:39.610 回答