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



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

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

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

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

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

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

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

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

最新更新