更改部署目标后无法再将应用模块导入单元测试

Posted

技术标签:

【中文标题】更改部署目标后无法再将应用模块导入单元测试【英文标题】:Can no longer import app module into unit tests after changing deployment target 【发布时间】:2015-07-16 17:40:06 【问题描述】:

为了在我的 swift 单元测试中对我的主应用程序目标的公共类进行单元测试,我必须在我的测试中导入我的主应用程序模块,如下所示:

#import MyAppModuleName

在我将部署目标从 7.0 更改为 8.4 之前,这一切正常。

现在构建和运行我的应用程序仍然可以正常工作,但运行单元测试停止工作。编译器抱怨上面的 import 语句:Swift Compiler Error: Module file's minimum deployment target is ios8.4 v8.4

我不知道为什么。我是否忘记在其他地方更改部署目标?

我的工作区 (Xcode 6.4.) 包含我自己的项目和一个 Pods 项目(由 cocoapods 自动创建)。我在我的应用和测试中同时使用 Swift 和 Objective-C。

以下是我所做的更详细的说明:

1) 将我的项目、我的主要目标以及我工作区中的 Pods 项目以及所有 pod 目标的部署目标从 7.0 更改为 8.4。

2) 清理构建文件夹 (Shift+Alt+Cmd+K) 并重新启动 Xcode。

3) Cmd+U -> 错误

将主应用的部署目标改回 7.0 后,一切都恢复正常了。

有什么想法来自这个问题吗?

【问题讨论】:

【参考方案1】:

您几乎完成了,您只需要为您的项目和两个目标更新 iOS 部署目标。

对于您的项目:

对于您的应用目标:

对于您的测试目标:

您可能应该进行清理和重建,无需重新启动 Xcode。我想如果您想针对 8.1 等,这也将起作用。

【讨论】:

是的,就是这样。我只是错过了一个事实,即确实存在三个或更多不同的位置来设置部署目标。我不确定我是否理解这有什么好处。例如。项目:9.0,应用目标:8.0,测试 8.4

以上是关于更改部署目标后无法再将应用模块导入单元测试的主要内容,如果未能解决你的问题,请参考以下文章

CSS 更新后 NPM 模块无法导入

如果测试模块位于姐妹文件夹中,如何让我的 Python 单元测试导入测试模块?

Django中的Python路径不一致-双模块导入

将测试从一个单元测试目标导入另一个

Xcode - 文件是模块的一部分,忽略导入

如何忽略 Next.js 组件中导致单元测试中的解析错误的 CSS 模块导入