从测试目标看不到 Swift 类

Posted

技术标签:

【中文标题】从测试目标看不到 Swift 类【英文标题】:Cannot see Swift classes from test target 【发布时间】:2016-01-13 19:50:37 【问题描述】:

我有一个同时使用 ObjC 和 Swift 代码的 ios 应用程序。我今天尝试为它设置一个测试目标,但没有成功。我有一个用 Swift 编写的测试用例类。我在那里导入了我的应用程序模块。我确保我尝试访问的课程是公开的。但我无法从我的测试目标中看到它们。我可以从那里看到 ObjC 代码。 我在一个虚拟项目上尝试了完全相同的步骤,并且效果很好。 我不想将用于测试的类添加到测试目标的编译源中。我也在使用 Xcode 6.3,目前不适合更新到 Xcode 7。 关于我做错了什么有什么想法吗?

【问题讨论】:

【参考方案1】:

确保您的导入使用@testable 注释进行标记。例如,你想要:

@testable import myprojectname

相对于:

import myprojectname

【讨论】:

@testable 注释随 Swift 2 一起提供,目前我无法更新到 Xcode 7。 这仅适用于 Swift 测试;如果测试在 ObjC 中你不能做@testable import【参考方案2】:

删除并重新创建测试目标后问题消失了。

【讨论】:

以上是关于从测试目标看不到 Swift 类的主要内容,如果未能解决你的问题,请参考以下文章

module.map 用于从测试目标访问主目标中的(Swift 和 Objective-C)类

iOS:单元测试看不到我的目标标识符

如何从 Swift 单元测试访问测试目标中存在的 Objective-C 代码?

找不到 -lAFNetworking 的 xcode 库

为啥找不到 Swift 4 语言的 Xcode 目标 c 接口标题名称

从 Swift 测试文件中调用 Objective-C 类