当Xcode代码覆盖率不显示时,如何显示它?

mutmk8jj  于 2023-03-04  发布在  其他
关注(0)|答案(7)|浏览(265)

我一直在尝试使用Xcode 9获取项目的代码覆盖率。所有测试用例都成功运行,但没有在“代码覆盖率”选项卡下生成代码覆盖率报告。
我尝试了以下方法:
1.启用“收集方案中的代码覆盖率”。
1.为我的目标启用代码覆盖率支持。
1.启用Showcase束选项。
检查代码覆盖率报告需要额外的设置吗?或者我应该错过了什么?提前感谢。

r1zk6ea1

r1zk6ea11#

在版本9.3中解决问题,以获得代码覆盖率目标-〉测试-〉选项-〉CodeCoverage参见图片:

fumotvh3

fumotvh32#

如果您想在编辑器的右侧查看代码覆盖率,请确保在Editor下拉菜单中选择了Show Code Coverage

bvjveswy

bvjveswy3#

我很确定他们只是把代码覆盖移到了一个新的位置,我现在看到它是报告导航器的一部分(见下面的截图)。
首先打开代码覆盖率支持(编辑方案-〉测试-〉选项-〉选中代码覆盖率框),然后在导航器中查看xcode的左手,在顶部你会看到一堆图标,点击右侧的最后一个图标(看起来像一个消息气泡)。
在这个标签页中,你会看到你运行的所有测试。在每个测试中有一个“覆盖率”项。点击其中一个来获得这个特定测试的覆盖率报告。

z8dt9xmd

z8dt9xmd4#

Apple方面存在已知漏洞,解决了UI测试目标(https://openradar.appspot.com/24006783)的缺失代码覆盖率。
Xcode版本9.3 beta(9Q98q)似乎解决了问题,只要在测试模式中未启用Debug executable
在Xcode构建方案编辑器Test -> Info tab -> Debugger中,确保未选中复选框Debug executable

f2uvfpb9

f2uvfpb95#

如果您和我一样,在模式中的Target -〉Test上没有看到Option选项卡(或任何选项卡),这意味着您需要将测试模式添加到应用中,或者选择了错误的Target。
首先选择“管理方案......”,然后查看您是否有TargetTest以及是否选中。

其次,添加(小+按钮)并选择您的测试目标。

顺便说一下,如果你没有测试包,请先把它添加到你的测试包列表中。


现在您将看到您的测试包,并可以选择和编辑它。您将看到Options选项卡,以及接受答案中提到的Code Coverage

3phpmpom

3phpmpom6#

旧的错误,当你不得不取消选择调试器'调试可执行'在编辑方案的信息选项卡(测试调试)-似乎已经解决,但有一个新的ARM M1,所以如果没有测试覆盖显示-尝试构建“我的Mac(Rosetta)”或如果失败,由于使用特定于平台的框架,如UIKit在我的情况下为“我的Mac(Mac Catalyst,Rosetta)。
会慢一些,但应该能用。

euoag5mw

euoag5mw7#

如果您正在开发一个框架,那么您需要在两个地方启用代码覆盖率。
首先,你需要创建一个独立的测试框架的方案。要启用这个方案的代码覆盖率,进入你项目的方案并选择“编辑方案”。然后,从左边的菜单中选择“测试”并选中“收集覆盖率数据”旁边的复选框。
第二,你需要为Clang编译器启用代码覆盖。要做到这一点,请转到你的项目设置并为你的框架选择目标。然后,转到“构建设置”并选择“Apple Clang -代码生成”。由于测试只在调试模式下运行,请确保在调试下的“启用代码覆盖支持”选项中选择“是”。

相关问题