如何在Xcode 6中获取代码覆盖率?

25

我的测试是XCTests,我使用的是Objective-C而不是Swift。

我看过一些涉及此主题的文章,但它们似乎专注于旧版本的Xcode,例如:

在Xcode 6上获得代码覆盖率的推荐方法是什么?苹果是否内置了代码覆盖功能,也许可以通过OSX服务器上的Xcode CI实现?


有找到答案吗?我也很感兴趣。 - Willam Hill
目前为止,很遗憾还没有答案。 - cnandreu
3
您尝试过使用gcov配置XCode吗?https://developer.apple.com/library/ios/qa/qa1514/_index.html - Ahmet Aygun
带有Travis和Coveralls的最小示例将是不错的。 - funroll
那么在 Xcode 6 中就不可能吗?我尝试了您第二个链接中概述的内容,但没有创建任何覆盖率文件。 - Thomas Clowes
我已经成功地让Xcode 6与Xcode覆盖率一起工作。请查看此链接:https://developer.apple.com/library/mac/qa/qa1514/_index.html - ksl
3个回答

15

请查看frankencover.it

  • 一款简单的脚本,可以在开发人员的命令行或CI构建服务器上运行。
  • 生成控制台输出以及HTML格式的详细报告。这可以在本地查看,也可以由构建服务器发布为工件。
  • 可选包含一个检查器,如果未满足所需的覆盖范围,则会“失败”构建(仅反馈信息)。这是一种提示,用于查看覆盖范围并寻找可以添加减少所需数量的有用测试的方法。两者都可能是正确的选择。
  • 适用于商业和开源项目,无需托管、赞助或订阅。

用法:

太棒了,它有一个易于记忆的狗语式命令行界面:

groovy http://appsquickly.github.io/frankencover.it/with --source-dir MyProject/Source

终端输出:

enter image description here

HTML报告:

enter image description here


1
这使得事情变得更加容易。 - Patrick Tescher
嗨@Jasper,HTML文件似乎丢失了。覆盖范围文件夹是空的。你以前遇到过这种情况吗? - Siddharthan Asokan
@Siddarthan 不是。你有最新的lcov吗?请在Github上提出问题。 - Jasper Blues
lcov:LCOV版本1.11,我猜这是最新的lcov。我将提出一个GitHub问题。 - Siddharthan Asokan
我也在尝试将这个与我们的项目一起工作。我们使用CMake(使用clang)构建它,但它也可以使用xcode构建(从CMake项目构建的项目文件)。然而,当我运行测试程序时,我不确定应该在我们的构建/测试区域中查找哪些文件;我甚至不确定代码是否真正被插装了。 - Steve Broberg
显示剩余3条评论

1
我们使用Xcoverage进行此操作。如果需要帮助,请查看下面的链接。

Xcoverage


0

这是一个更新,从Xcode 6开始,Apple就拥有了内置的代码覆盖工具,但是看一下coverStory,在推送之前本地配置测试非常容易。并且提供逐行覆盖率。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接