现有项目的 XCTest

Posted

技术标签:

【中文标题】现有项目的 XCTest【英文标题】:XCTest for existing project 【发布时间】:2014-01-10 22:01:00 【问题描述】:

我有一个大的(大约 700 个模块)ios 项目。现在我需要对现有代码进行单元测试(在我们没有使用它之前)。我为我的目标添加了新的 XCTest 测试目标并开始编写我的第一个测试。但是编译后我有一些链接错误,因为我的项目中的模块没有包含在测试目标中。我是否包含了所有模块来测试目标?还是有更简单的方法来制作测试目标?

【问题讨论】:

Adding Unit Tests to an already existing project?的可能重复 【参考方案1】:

应用程序文件不要需要包含在 XCTest 目标中。只有测试文件应该包含在 XCTest 目标的“编译源”列表中。

按照Apple instructions 将 XCTest 添加到您的项目中。

在 Application 目标中,确保编译器选项“Symbols hidden by default”设置为 NO

Here 是一篇博文,如果你卡住了,有截图!

【讨论】:

美丽,绝对美丽。这为我/我的公司节省了很多麻烦,因为我们之前将每个源文件都添加到了测试目标中。这个问题的根源是当我注意到我们的单元测试中的一些对象在isEqual: 中的基本isMemberOfClass: 测试失败时。尽管被测试相等性的两个对象是从同一个源文件创建的,但它们来自两个不同的编译源:一个来自被测项目,一个来自单元测试项目。 链接已损坏。我认为这是更新的链接:developer.apple.com/library/ios/documentation/ToolsLanguages/…

以上是关于现有项目的 XCTest的主要内容,如果未能解决你的问题,请参考以下文章

iOS:xcode 5,将项目从 xctest 迁移到 senTestingKit

XCTest:如果我只是对测试目标进行更改,如何防止 Xcode 不必要地重新编译我的项目

在非测试目标中使用 XCTest

如何在 Xcode 中配置和运行目标 C 测试用例--XCTest

Xcode 不会将 XCTest 链接到 iOSSimulator 版本

XCTest POST API 性能测试