Dov*_*Dov 5 cocoa objective-c ocmock xcode4 osx-lion
我试图在我的测试用例中第一次使用OCMock.这是一个Mac项目,基于Xcode 4.3构建并以Lion为目标.主应用程序和测试包都打开了ARC,因此每次执行测试时都会看到以下日志消息:
GC: forcing GC OFF because OBJC_DISABLE_GC is set
那很好,因为我使用ARC所以我不关心GC.当我构建单元测试时,与OCMock(2.0.1)的最新稳定版本链接,构建没有问题.在运行时,在上面的日志语句之后,我得到以下内容:
The test bundle at /Users/___/Library/Developer/Xcode/DerivedData/___-ayizwpehemunvodsdvczckkvarsh/Build/Products/Debug/___Tests.octest could not be loaded because its Objective-C runtime information does not match the runtime information required by the test rig. This is likely because the test rig is being run with Objective-C garbage collection disabled, but the test bundle requires Objective-C garbage collection. To enable Objective-C garbage collection for the test rig, run it in an environment without the OBJC_DISABLE_GC environment variable.
2012-03-06 10:29:32.812 otest[8486:203] *** NSTask: Task create for path '/Users/___/Library/Developer/Xcode/DerivedData/___-ayizwpehemunvodsdvczckkvarsh/Build/Products/Debug/___Tests.octest/Contents/MacOS/___Tests' failed: 22, "Invalid argument". Terminating temporary process.
该消息暗示垃圾收集是最常见的罪魁祸首,但如上所述,我无法使用GC.那么,其他什么设置可能会让我在运行时搞砸了?我不认为我做任何非典型的事情,并且我已经查看了我的测试项目的设置以确定,并没有看到任何奇怪的东西.
更新
我能用一个新的空项目重现这个.
Test Host从单元测试包的构建设置中清除设置此外,当我关闭ARC并使垃圾收集成为必需时,然后clang报告一个mach-o链接器错误,因此构建不成功.如果我删除了OCMock框架的链接,它构建正常.这支持了我最初的想法,即问题出在垃圾收集之外的某个地方.
Dov*_*Dov 18
我找到了答案,寻找一切我能想到的,在经过一天的Hamcrest教程(通过阅读更仔细OCMock教程从链接OCMock.org,它提到在那里,太).出于某种原因,需要将Hamcrest和OCMock的框架复制到产品目录中.然后一切都像魅力一样.
像往常一样执行测试
| 归档时间: |
|
| 查看次数: |
1614 次 |
| 最近记录: |