Xcode 跨方案共享测试计划导致构建每个目标

Xcode shared Test Plan across schemes causes each target to build

我的 Xcode 项目中有一个简单的测试计划(具有单一配置),我正在切换到该项目,因为我的项目中有针对不同应用程序目标的多个方案,但测试是共享的(如因为它们在相关性方面并不具体限于一个目标,尽管只有一个宿主应用程序是可能的)。我现在想为所有目标制定一个测试计划,但是当我创建测试计划并将其添加到每个方案,然后 运行 测试时,我可以清楚地看到每个目标都已构建。因此,对于我添加的每个目标,构建和 运行 测试所需的时间会逐渐增加。测试计划上的 2019 WWDC video 明确表示它们可以在多个方案之间共享,但没有说更多。

这是它应有的行为方式吗?或者有没有办法在方案之间共享测试计划,但只构建正在测试的活动目标?

编辑:注意,运行ning 测试在本地和自动化中进行 CI,因此需要一个适用于两者的解决方案。

实际上,由于测试计划,我不确定它是否正在构建多个目标,因为构建中只显示了几个目标(尽管 Xcode 可能正在优化并跳过冗余正在建造,因为其他每一个都与正在建造的一个几乎相同。

啊哈!它根本不是关于测试计划,而是关于单个测试包内的依赖关系。当我在切换到测试计划之前返回并注意到几个目标仍在为单个测试包构建时意识到这一点。

单击 Xcode 项目设置中的方案,转到构建阶段选项卡,然后在依赖项下检查那里有哪些目标。

在我的例子中,我的一个测试包有两个目标,另一个测试包(用于 UI 测试)有第三个目标。

即使我的测试计划禁用了 UI 测试,我猜它仍在构建所有依赖项。清理它解决了我遇到的构建问题!