注意:对于这个问题,“使用GHUnit”是不能接受的答案。我知道大多数人认为GHUnit比Xcode4 OCUnit更好,但这不是我想问的。我会单独评估它。
我有一个用Xcode4从头开始创建的Xcode项目,在创建过程中选中了"Include unit test“复选框。我还包含了一些我在以前的项目中开发的库。它们是通过"Add Files to x...“添加到项目中的。对话框,并且仅添加到应用程序目标(而不是测试目标)。它们在运行应用程序时工作得很好,所以我认为它们设置得很正确。我还为这个项目编写了许多不同的类。
我的测试文件是以标准方式设置的,名为AppNameTests.h和.m。
header代码:
#import < SenTestingKit/SenTestingKit.h >
@interface [AppName]Tests : SenTestCase {
@private
}
@end
实现代码:
#import "[AppName]Tests.h"
@implementation [AppName]Tests
- (void)setUp
{
[super setUp];
// Set-up code here.
}
- (void)tearDown
{
// Tear-down code here.
[super tearDown];
}
// Test methods go here
@end
这只是基本的骨架。它在我的其他项目中工作得很好,只要我不导入任何其他文件。当我从这个项目导入另一个文件并使用它时,我在Xcode输出日志中看到以下错误:
The test bundle at /Users/[Me]/Library/Developer/Xcode/DerivedData/[AppName]-dwuuuwcpmdqxqmgxomoniplwhlpb/Build/Products/Debug-iphonesimulator/[AppName]Tests.octest could not be loaded because a link error occurred. It is likely that dyld cannot locate a framework framework or library that the the test bundle was linked against, possibly because the framework or library had an incorrect install path at link time.
我已经验证过了:
有没有想过这可能是什么原因造成的?
发布于 2012-09-13 02:00:04
我必须将单元测试目标上的"Test Host“属性设置为$(BUNDLE_LOADER)
。这解决了我的问题!
发布于 2012-03-04 01:53:39
我只是在这个错误和类似的错误上浪费了几个小时-原来我已经重命名了我的主要目标-尝试通过重命名相关变量和删除整个DerivedData目录来修复这个错误,但都没有成功。
我最终按照下面的步骤简单地设置了一个新的单元测试目标:http://twobitlabs.com/2011/06/adding-ocunit-to-an-existing-ios-project-with-xcode-4/
现在一切都好了。
所以-如果你有奇怪的,无法解释的链接错误,你最好创建一个新的单元测试目标。只需要2分钟。
发布于 2012-10-02 23:30:38
我做了以下工作:
http://twobitlabs.com/2011/06/adding-ocunit-to-an-existing-ios-project-with-xcode-4/
更深入地了解Test_Hosts = $(BUNDLE_LOADER)
设置Test_Hosts解决了完全相同的问题!
https://stackoverflow.com/questions/6268259
复制相似问题