代码覆盖是不是已经适用于 Swift?
Posted
技术标签:
【中文标题】代码覆盖是不是已经适用于 Swift?【英文标题】:Is code coverage already working for Swift?代码覆盖是否已经适用于 Swift? 【发布时间】:2014-09-20 08:00:21 【问题描述】:我正在尝试为 Xcode 6 Beta 4 上的 Swift 应用程序设置测试代码覆盖率。
过去我可以使用带有 Xcode 5 的 ObjectiveC 来做到这一点,但是我认为我必须调用 void __gcov_flush()
方法来触发 .gcda/.gcno 文件的生成。
我将应用程序和测试目标的检测和代码覆盖率属性都设置为YES
。
但是在运行测试之后,当我查看时:
我看到的 DerivedData/一些子文件夹/i386 都是以下类型的文件:
.d,.dia,.o,.swiftmodule 等等,但没有表明代码覆盖率。
因此我有两个问题:
-
预计代码覆盖率是否适用于使用 Xcode6 beta 4 的 Swift?
如果是并且必须先刷新 gcov,我该怎么做
来自斯威夫特?
谢谢
【问题讨论】:
有人对此有所了解吗?代码覆盖在 Xcode 6 中是不可能的吗? 【参考方案1】:Xcode 6 Beta 4 没有 Swift 工作的代码覆盖率。有一个未解决的 Apple 问题,ID 为 17450338。
【讨论】:
能否添加指向该问题的链接? @Maxwell Apple 的问题跟踪器(称为 Radar)是私有的,因此很遗憾无法直接链接到该问题。 OpenRadar 站点允许任何人复制他们向 Apple 报告的问题,以下是相关问题:openradar.me/17450338 不知道后面的版本有没有整理出来?【参考方案2】:Xcode 6.3 中未修复,请参阅http://openradar.appspot.com/radar?id=6457429508227072
【讨论】:
【参考方案3】:Xcode 7 中提供了 Swift 的代码覆盖率。您可以在方案的测试设置中打开它,方法是勾选标记为“收集覆盖率数据”的复选框。
请注意,Apple 为覆盖数据引入了一种新格式,即 profdata 文件。
链接:
Xcode Overview: Using Code Coverage (Mac)(苹果文档) Xcode Overview: Using Code Coverage (ios)(苹果文档) Leveraging Swift Code Coverage with Xcode 7(博文,不是我的)【讨论】:
如果第三篇是你的博文,请说出来,因为它是某个未知域的url 不,这不是我的博文。以上是关于代码覆盖是不是已经适用于 Swift?的主要内容,如果未能解决你的问题,请参考以下文章