如何从llvm-cov生成.gcov文件?

前端之家收集整理的这篇文章主要介绍了如何从llvm-cov生成.gcov文件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在 @L_403_0@ 7上创建了一个生成代码覆盖率数据的项目.

在其DerivedData文件夹中,我可以运行llvm-cov显示

/usr/local/opt/llvm/bin/llvm-cov show -instr-profile Build/Intermediates/CodeCoverage/testetestes/Coverage.profdata Build/Intermediates/CodeCoverage/testetestes/Products/Debug-iphonesimulator/testetestes.framework/testetestes

这将产生如下输出

/Users/marcelofabri/Desktop/testetestes/testetestes/Example.swift:
   |    1|//
   |    2|//  Example.swift
   |    3|//  testetestes
   |    4|//
   |    5|//  Created by Marcelo Fabri on 09/06/15.
   |    6|//  Copyright © 2015 Marcelo Fabri. All rights reserved.
   |    7|//
   |    8|
   |    9|import UIKit
   |   10|
   |   11|class Example: NSObject {
  1|   12|    func testando() {
  1|   13|        if let url = NSURL(string: "dasdas") {
  1|   14|            print("ae \(url)")
  0|   15|        } else {
  0|   16|            print("oi")
  0|   17|        }
  1|   18|    }
   |   19|}

/Users/marcelofabri/Desktop/testetestes/testetestes/OutraClasse.swift:
   |    1|//
   |    2|//  OutraClasse.swift
   |    3|//  testetestes
   |    4|//
   |    5|//  Created by Marcelo Fabri on 18/06/15.
   |    6|//  Copyright © 2015 Marcelo Fabri. All rights reserved.
   |    7|//
   |    8|
   |    9|import UIKit
   |   10|
   |   11|class OutraClasse: NSObject {
   |   12|
  1|   13|    func outroTestando() {
  1|   14|        if let numero = Int("123") {
  1|   15|            print("ae \(numero)")
  0|   16|        } else {
  0|   17|            print("oi")
  0|   18|        }
  1|   19|    }
   |   20|
   |   21|}

但是,我想获取.gcov文件,因为它是大多数工具使用的.有没有办法在不解析输出并手动创建.gcov文件的情况下执行此操作?

解决方法

根据苹果gcov不是Xcode 7覆盖支持的一部分. Gcov是gcc遗产,直到出现更换.显然,他们删除了遗留的gcov文件格式支持,有利于新的中间格式 – profdata.我自己做了研究,没有找到任何将profdata转换为gcov的工具,但是还有 Slather from Venom. Slather可以在Gutter JSON,Cobertura XML,HTML和简单测试中生成覆盖率报告.它还能够提供与服装等流行服务的集成.目前,它也仅与gcov一起工作,但是它们已经打开了问题,PR请求待处理以支持profdata.他们通常会快速移动,所以很快就会被合并成主人.

此外,如果您决定编写自己的工具,您可以考虑多种方法进行审核:

>从llvm-cov显示转换纯文本输出
>按照format documentation转换profdata的二进制格式>帮助Slats家伙将他们的模型的交叉覆盖介绍回gcov,一旦他们将合并在profdata支持

猜你在找的iOS相关文章