在添加OCMock后,单元测试始终是“成功”的。

5
我想在我的Cocoa项目的单元测试中使用OCMock。我已经下载了最新版本的OCMock(2.0.1),并将OCMock.framework复制到了我的项目目录中。在Xcode中,我已将该框架添加到单元测试目标的链接阶段。然后,我添加了一些使用OCMock类的代码。
从那时起,所有的单元测试都会报告为“成功” - 绿色灯,没有错误或警告。即使引入了STFail调用,Xcode也声称“测试成功”。在任意测试方法中放置断点会发现它们都没有被执行。
如果我注释掉使用OCMock的代码,包括import指令,则问题仍然存在。
当我从链接阶段中删除OCMock时,这个问题就消失了 - 也就是说,STFails又开始失败了。
这与我之前另一个问题类似,但不完全相同:在这种情况下,日志导航器中的信息没有显示错误。是什么原因导致了这种行为?我该如何诊断这个问题?
1个回答

2

原来我缺少了一个复制文件的构建阶段,这显然可能会导致各种问题

以下是我的解决方法:

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接