gpt4 book ai didi

objective-c - 使用 XCode 4 进行单元测试的链接错误?

转载 作者:太空狗 更新时间:2023-10-30 03:11:59 25 4
gpt4 key购买 nike

我想为我的 XCode 应用程序中的类编写一些逻辑单元测试。在 Xcode 4 中,我单击项目导航器中的项目名称,然后从底部单击添加目标。我在其他下选择了“Cocoa Touch Unit Testing Bundle”,给新目标一个“测试”的“产品名称”,然后完成。

因为我要测试的类是作为我现有应用程序目标的一部分编译的,对于我的新“测试”目标,我立即转到“构建阶段”选项卡并将我现有的应用程序目标添加为唯一的目标依赖项。

然后我转到创建的 tests.m 文件,导入我要测试的类(在它下面是 ReleasePlanManager,并调用它的方法之一。但是链接器失败并出现如下错误:

Undefined symbols for architecture i386:
"_OBJC_CLASS_$_ReleasePlanManager", referenced from:
objc-class-ref in tests.o
ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status

所以找不到该类,即使(根据我的理解)添加应用程序目标(它是其中的一部分)应该足够了吗?

如有任何帮助,我们将不胜感激。谢谢!

最佳答案

您的测试包需要额外的设置:

  • Bundle Loader 设置为 $(BUILT_PRODUCTS_DIR)/AppName.app/AppName(将两个地方的 AppName 替换为您的应用名称)
  • 测试主机设置为$(BUNDLE_LOADER)

(如果您从头开始创建一个项目并启用单元测试,这些都是为您设置的。但如果您将单元测试包添加到现有项目,则不会。)

关于objective-c - 使用 XCode 4 进行单元测试的链接错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6461074/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com