Xcode 4:为啥我不能将头文件添加到单元测试目标?

Posted

技术标签:

【中文标题】Xcode 4:为啥我不能将头文件添加到单元测试目标?【英文标题】:Xcode 4: Why can't I add a header file to a unit test target?Xcode 4:为什么我不能将头文件添加到单元测试目标? 【发布时间】:2011-09-09 13:04:41 【问题描述】:

我在 Xcode 中打开了一个基本的 Cocoa 项目,包括一个单元测试目标。

我创建了一个新的测试类来测试我的一个模型类。但是,我无法将需要测试的类的标题添加到单元测试目标中。 “Target Membership”下的复选框对于单元测试目标是不可点击的(它是针对主要目标的)。

由于我无法将头文件添加到单元测试目标中,Xcode 不会自动提示被测类的方法名称。

我错过了什么吗?我不应该能够将头文件添加到单元测试目标吗?

【问题讨论】:

【参考方案1】:

我不是 Xcode 专家,但在我的项目中,没有一个头文件设置了任何目标成员资格,没有一个复选框是可点击的 - 您只能添加 .m 文件,而且头文件以某种方式神奇地包含在内.您应该能够只导入测试文件顶部的头文件并让方法自动完成工作 - 除非您在这些测试中使用一些奇怪的宏,因为我注意到 Xcode 在您使用时会与自动完成混淆在宏调用中。如果是这种情况,请尝试自动完成功能是否在任何宏之外工作。

【讨论】:

Xcode 甚至无法解析单元测试宏(例如 STAssertEquals),如果我按命令单击它们(但代码会编译并运行)。不确定项目有什么问题。也许某处有混合的构建设置 如果它编译,那么它是自动完成本身的问题,而不是构建中没有正确包含的东西,否则它不会编译。 Xcode 的自动完成功能对我来说经常中断 - 有时是因为语法错误,有时是因为光标在宏内,有时我只是关闭项目并重新打开它,然后它再次工作...... 这很奇怪,因为只有在我为 .hpp 文件(编程 C++)指定默认目标时,我在 XCode 8 中的项目才能正确构建,但由于未知原因,测试目标的复选框被禁用并且我无法使我的单元测试在 hpp 文件中查看我的模拟类的声明。

以上是关于Xcode 4:为啥我不能将头文件添加到单元测试目标?的主要内容,如果未能解决你的问题,请参考以下文章

将单元测试移动到 xcode 中的不同文件夹

Xcode 单元测试 - 添加一个用于所有测试类的通用函数

使用 otest 调试测试时,如何将我的可执行文件链接到我的测试包?

为啥 Xcode 找不到我的单元测试应用程序?

如何在 Xcode 4.5“命令行工具”项目中设置工作逻辑单元测试目标?

为啥?单元测试覆盖率中显示的类即使没有添加到测试目标中