将 OCUnit 测试框架添加到现有 Xcode 项目时遇到问题

Posted

技术标签:

【中文标题】将 OCUnit 测试框架添加到现有 Xcode 项目时遇到问题【英文标题】:Trouble Adding OCUnit Testing Framework to Existing Xcode Project 【发布时间】:2013-05-21 23:14:08 【问题描述】:

我正在尝试使用 OCUnit 测试框架将单元测试集成到我当前的 Xcode 项目中。我一直在关注 Apple 的文档:

http://developer.apple.com/library/mac/#documentation/developertools/Conceptual/UnitTesting/02-Setting_Up_Unit_Tests_in_a_Project/setting_up.html,

关于设置逻辑测试。当我切换到我的测试方案并在“产品”选项卡下运行“测试”时,我收到两个错误:

错误 1:架构 i386 的未定义符号: “_main”,引用自: 从crt1.o开始

错误 2:ld:未找到体系结构 i386 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

我已尝试清理我的构建并使用应用程序测试,但似乎没有任何效果。我在 Lynda 上查看的教程似乎没有遇到这些错误。添加一个目标并将其链接到我当前的项目似乎是为了开始在 Xcode 中使用单元测试所需的一切。这些错误是什么意思,它们指的是什么?感谢所有输入!

【问题讨论】:

我能够通过将我的“main.m”文件添加到“构建阶段”部分下的测试目标的“编译源”中来消除第一个错误。但是,我不认为这是一个非常干净的解决方案,因为我不得不在“编译源”选项卡下添加数百个文件,以确保不再收到错误。 【参考方案1】:

1) 创建一个新的 ios 项目,说一种视图控制器类型,并在创建时指定您想要的单元测试,现在您可以看到 Xcode 是如何连接它的 - 您将有一个参考。

2) 在临时文件夹中创建一个类型和名称为当前项目的新项目。将您的原始项目文件移动到另一个临时文件夹,将新文件移动到原始文件所在的位置,然后导入所有文件检查单元测试目标。

【讨论】:

嗨大卫,感谢您的帮助,我实际上已经开始这样做了。我创建了一个新项目,包括单元测试,并开始了我所有源文件和库的漫长迁移过程。话虽如此,有什么我应该特别注意或特别注意的吗? 我目前正在尝试从我的旧项目中复制构建设置和构建阶段,并为包含单元测试的新项目设置开发环境。目前,我已经在“编译源”下添加了所有必要的源文件,并在“使用库链接二进制文件”下添加了所有适当的库,但我仍然收到编译错误(总共大约 63 个)。有什么指导或建议吗? 用错误更新问题。我不认为您可以链接基于 UI 的类或引用 UI 的类。在我的代码中,我添加了一个名为“ReleaseForUnitTesting”的特殊构建配置,并在那里定义了 UNIT_TESTING,然后 ifdef'd 我需要排除的代码块。或者提供存根,或者重构。这显然会浪费时间。

以上是关于将 OCUnit 测试框架添加到现有 Xcode 项目时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 4 中的 SenTest OCUnit

将单元和 UI 测试添加到 Xcode 中的现有项目

Xcode 的 OCUnit 测试能否在 iOS 设备而不是模拟器上运行

iPhone 上的 ocunit 测试

如何使用 Xcode 4 和 OCUnit 运行应用程序测试?

OCUnit 测试用例未运行