首页 > 解决方案 > Xcode 9.3 中主要目标的代码覆盖率

问题描述

我有一个现有的 iOS 项目,其中包含应用程序和单元测试目标。在 Xcode 9.2 上运行单元测试的代码覆盖率很好。但我无法让它在 Xcode 9.3 上正常运行

我已经进入了单元测试的方案,并在“测试”选项中选择了“为...收集代码覆盖率”。

如果我为收集代码覆盖选项选择“所有目标”,它会为除主应用程序之外的所有目标生成覆盖 - 对于嵌入式框架、Coocapods 引入的框架以及测试文件本身

如果选择“一些目标”并专门选择主要应用程序目标,则绝对不会生成覆盖数据。

我不确定我的方案中有什么设置错误。我也尝试过从单元测试方案以及主要目标方案(测试运行单元测试方案)运行测试,但没有运气。寻找可能出错的指针。

标签: iosunit-testingcode-coveragexcode9.3

解决方案


事实证明,SWIFT_OPTIMIZATION_LEVEL(优化级别)已更改为优化调试配置中的速度 [-O]。我不记得是否在填写各种构建设置后忘记恢复它,或者项目迁移中出现问题。但是改回来没有优化 [-Onone] 为我解决了这个问题


推荐阅读