Xcode和代码覆盖率

Hel*_*rld 7 c++ xcode code-coverage

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

我试图让它作为一个UnitTest运行,它手动触发我的应用程序的'main(...)'函数(参见代码块),但是由于这个过程是由应用程序'xctest'启动的,所以很多东西都缺失了来自我的应用程序包等的资源(错误或错误的路径,......).

- (void)testExample {
  int main(int argc, char* argv[]);
  main(...);
}
Run Code Online (Sandbox Code Playgroud)

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

hal*_*lit 2

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

据我了解,Xcode 的代码覆盖率工具也会创建 .profdata 报告并使用它。我没有直接的解决方案,但您可能会通过这些信息找到一些东西。如果你找到一种方法让 Xcode 使用你的 .profdata 就完成了:)