【发布时间】:2011-04-27 23:11:40
【问题描述】:
我在 XCode 4 中使用单元测试。我一直在将我的应用程序 *.m 文件添加到单元测试目标“编译源”中,因为我引用它们,以便单元测试将构建/运行。
这里有更好的方法吗?
注意 - 我刚刚尝试将应用程序添加到单元测试目标“目标依赖项”,但这似乎不起作用(仍然出现一些构建错误)。
【问题讨论】:
我在 XCode 4 中使用单元测试。我一直在将我的应用程序 *.m 文件添加到单元测试目标“编译源”中,因为我引用它们,以便单元测试将构建/运行。
这里有更好的方法吗?
注意 - 我刚刚尝试将应用程序添加到单元测试目标“目标依赖项”,但这似乎不起作用(仍然出现一些构建错误)。
【问题讨论】:
在 Xcode 4 之前,您描述的方法是必要的:应用程序测试目标本质上必须是您的实际应用程序的副本,加上测试。
但是使用 Xcode 4,我们不再需要在模拟器中进行测试。相反,使用作为单元测试包的目标,并将您的测试添加到包中。在测试期间,应用程序被启动,测试包将被注入并与应用程序链接,所有这些都在运行时进行。
听起来您尝试过这种方法,让我们讨论一下您遇到的实际错误。
【讨论】:
是的,您需要将所需的每个 .m 文件添加到单元测试目标中。
这会将它们包含在目标编译和链接阶段。
【讨论】:
如果 testTarget 是在 Obj-C 项目中基于 om SWIFT 语言创建的
制作 testTrget 的方案就足够了,但是这样: 产品 -> 方案 -> 编辑方案 -> 构建选项卡: 只检查了测试而已。
重要提示: 您不应将每个 .m 文件包含到测试目标中 只是将标题添加到 testTarget-Bridging-Header.h
注意:如果您将在方案中检查更多内容或将 .m 文件包含到 testTarget 中,您可能会遇到标题冲突
【讨论】: