XCode 单元测试 - 在范围内找不到 viewcontroller

XCode Unit Tests - Cannot find viewcontroller in scope

在我的应用程序开发的某个时刻,我的单元测试和 UI 测试无法访问我的应用程序的主模块:

Cannot find type 'FileVacuumViewController' in scope

他们之前使用过 xctestplan。我不知道什么时候发生的。我尝试不导入 @testable,包括主模块的“目标成员资格”中的 tests.swift

也许我需要打开工作区而不是 xcproject? 当我尝试打开工作区时出现一条错误消息,并且树中没有显示任何文件:


这是我的 xctestplan 配置:

当我单击 运行 一个单独的 UI 测试时,大约有 20 个这样的代码签名对话框显示:

您的测试文件似乎同时包含在您的应用目标和测试包中。确保从应用程序目标中取消选中它并尝试清理和构建。

Select 在 Project Navigator 中文件“FileVacuumViewController”,在 File Inspector 中,在 Target Membership 部分中,检查以 Tests 和 UITests 结尾的字段。如有必要,清理并构建项目。

我最近 运行 和 XCode 13 一起关注这个关于创建单元测试的博客 post。出于某种原因,XCode 没有自动将 ViewController 添加到测试目标。

我的解决方案是确保 ViewController 包含在测试套件的目标成员资格中。我还必须对主故事板进行相同的目标成员更改。

升级到 Xcode 13 后,我自己 运行 遇到了这个问题。

我的解决方案是从 XCTest 和 XCUITest 目标依赖项中删除文件:

Project Settings -> <Target>Tests -> Build Phases -> select file and click "-"
Project Settings -> <Target>UITests -> Build Phases -> select file and click "-"

现在尝试 运行 您的测试并将 @testable import <Target> 添加到出错的 XCTest 文件的顶部。注意:您根本不必将其添加到您的 UITests 文件中。