添加OCMock后,单元测试始终“成功”

时间:2013-02-17 11:38:13

标签: cocoa unit-testing frameworks ocmock sentestingkit

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

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

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

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

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

1 个答案:

答案 0 :(得分:2)

事实证明我的框架是missing a Copy Files build phase,显然可能导致a variety of issues

这对我有用:

  1. 复制文件阶段添加到单元测试目标的构建阶段。我在运行脚本阶段之前定位它,使其成为倒数第二个。
  2. OCMock.framework 项从项目导航器拖到相位上以添加它;使用+按钮添加它在Xcode 4.6中不起作用(可能是因为框架是目录?)。
  3. 将阶段的目的地设置为“Frameworks”。
  4. 在单元测试目标的构建设置中,查找运行路径搜索路径并添加条目@loader_path/../Frameworks
  5. 这样,单元测试可执行文件将能够在运行时找到框架。请注意,您还可以使用“产品目录”作为复制文件阶段的目标,在这种情况下,您可以跳过第四步。