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

wal*_*pus 5 cocoa frameworks unit-testing ocmock sentestingkit

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

从那时起,所有单元测试都被报告为"成功" - 绿灯,没有错误或警告.即使在引入STFail电话后,Xcode声称"测试成功".在任意测试方法中放置断点表明它们都没有被执行.

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

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

这类似于我之前提出的另一个问题,但不完全相同:在这种情况下,Log Navigator中的信息显示没有错误.什么可能导致这种行为?我该怎么做才能诊断出这个问题?

wal*_*pus 2

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

这对我有用:

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

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