5

我想在我的 Cocoa 项目的单元测试中使用 OCMock。我已经下载了最新版本的 OCMock (2.0.1) 并将OCMock.framework复制到我的项目目录中。在 Xcode 中,我已将框架添加到单元测试目标的链接阶段。然后我添加了一些使用 OCMock 类的代码。

从那时起,所有单元测试都报告为“成功”——绿灯,没有错误或警告。即使在引入STFail调用之后,Xcode 仍声称“测试成功”。在任意测试方法中放置断点表明它们都没有被执行。

如果我使用 OCMock 注释掉代码,包括import指令,问题仍然存在。

STFails当我从链接阶段删除 OCMock 时,问题消失了 - 即,开始再次失败。

这类似于我之前问过的另一个问题,但不完全相同:在这种情况下,日志导航器中的信息显示没有错误。什么可能导致这种行为?我可以做些什么来诊断这个问题?

4

1 回答 1

2

事实证明我错过了框架的复制文件构建阶段,这显然可能导致各种问题

这对我有用:

  1. Copy Files阶段添加到单元测试目标的构建阶段。我将它定位在运行脚本阶段之前,使其成为倒数第二个。
  2. OCMock.framework项从项目导航器拖到阶段以添加它;使用按钮添加它+在 Xcode 4.6 中不起作用(可能是因为框架是目录?)。
  3. 将阶段的目标设置为“框架”。
  4. 在单元测试目标的构建设置中,查找Runpath Search Paths并添加条目@loader_path/../Frameworks

这样,单元测试可执行文件将能够在运行时找到框架。请注意,您还可以使用“产品目录”作为复制文件阶段的目标,在这种情况下,您可以跳过第四步。

于 2013-02-23T11:25:10.417 回答