在 Xcode 中有单独的测试目标方案吗?

Posted

技术标签:

【中文标题】在 Xcode 中有单独的测试目标方案吗?【英文标题】:Having separate schemes for test targets in Xcode? 【发布时间】:2018-11-01 12:07:16 【问题描述】:

我们的项目结构如下:

Workspace:
- app project
- cocoapods project


App scheme:
- app target (run)
- ui test target (test)
- unit test target (test)

升级到 Xcode 10 后,Xcode 坚持构建整个项目,包括 pod 和 ui 测试,每次运行单个单元测试,这是一个相当繁重和缓慢的过程。

如果我创建一个仅包含单元和/或 ui 测试的单独方案,它只会在我运行它们时重新构建测试。随心所欲。

但是,由于它们不再是主应用方案的成员,我不能再按主方案上的测试,因为它不再包含测试目标。

然后我的问题是:在运行单个单元测试时,是否正常或建议使用单独的测试方案,或者我可以防止整个项目以另一种方式重建?

(注意:我在单元测试中将 Host Application 设置设置为 None,所以我不明白为什么它总是构建整个项目?)

【问题讨论】:

【参考方案1】:

为什么不两者兼而有之?在您的“测试所有事物”方案中,添加每个测试目标。这个方案应该共享。

但是当我在一个目标上工作时,我会单独为它制定一个计划。 (更准确地说,AppCode 为我创建了一个。)此类方案不共享。

【讨论】:

我也想过,但是我们需要能够单独启用/禁用测试,并且在一个方案中禁用目标测试时,它不会影响另一个方案中的设置,这会创建一个维护噩梦。

以上是关于在 Xcode 中有单独的测试目标方案吗?的主要内容,如果未能解决你的问题,请参考以下文章

带有主机应用程序的 Xcode 测试目标强制错误的目标进入方案的构建部分

如何在 Xcode 7 中动态更改单元测试的目标?

Xcode UI 测试:我可以使用 UI 测试脚本访问目标应用程序文件夹吗?

使用命令行的 Xcode 4 单元测试

Xcode 测试后不退出

Xcode 7 UI 测试目标语言环境和区域设置