Codecov:C++ 库的 gcov 代码覆盖率

Codecov: gcov code coverage for a C++ library

我正在编写一个小型 C++ 静态库。在 GitHub Actions 中,我有一个“单元测试”工作流,它编译并运行测试程序,然后将代码覆盖率提交给 Codecov 服务。它运行:g++ test.cpp library/library.cpp --coverage -o test,然后是 ./test,然后是 gcov -o . test.cpp。在下一步中,结果将提交到我的 Codecov 帐户,其中包含标准 bash <(curl -s https://codecov.io/bash)(将 CODECOV_TOKEN 设置为环境变量)。到目前为止一切正常。

但是,在报道中,我看到库目录中 .cpp.h 文件的报告,还有 test.cpp 的报道。我对我的测试代码的覆盖率不感兴趣,它歪曲了统计数据。有没有办法只提交库文件的覆盖率报告?

没有简单的方法来排除 gcov 级别的文件,但我通过限制 codecov 提交解决了这个问题:https://docs.codecov.io/docs/ignoring-paths