代码覆盖是不是已经适用于 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?的主要内容,如果未能解决你的问题,请参考以下文章

协议方法是不是意味着在 Swift 中被覆盖?

安卓圆角背景遮罩。覆盖实现方式(适用于所有控件)

Swift - 必须被子类覆盖的类方法

Django - 覆盖模型保存()

CSS 表格样式仅适用于特定单元格,但会覆盖其他单元格

覆盖 Android Backbutton 行为仅适用于具有 PhoneGap 的第一页