Xcode和代码覆盖率

时间:2016-08-01 18:29:35

标签: c++ xcode code-coverage

我的应用程序最初不是为Mac平台编写的,因此它拥有自己的单元测试系统,可以通过命令行触发。是否可以通过执行它来利用Xcode中的代码覆盖支持?

我试图让它作为 UnitTest 运行,它触发了主要的(...)'手动执行我的应用程序的功能(参见代码块),但由于此过程是由应用程序启动的,因此xctest'我的应用程序包中的资源(不正确或错误的路径,......)等很多东西都缺失了。

- (void)testExample {
  int main(int argc, char* argv[]);
  main(...);
}

有没有办法告诉Xcode我的应用程序应该启动,以便它可以输出可以在Xcode中查看的代码覆盖率?

1 个答案:

答案 0 :(得分:1)

我没有使用XCode覆盖工具,但之前我使用过gcov。无论如何,在this article中都有关于如何创建llvm覆盖率报告的信息。因此,您可以将单元测试系统与llvm的coverage标志一起使用,然后使用llvm-profdata工具创建.profdata报告。

据我所知,Xcode的代码覆盖率工具也可以创建.profdata报告并使用它。我没有直接的解决方案,但您可能会发现有关此信息的内容。如果你找到一种让Xcode使用.profdata的方法,那就完成了:)