如何使用介子在 C++ 中执行代码覆盖?

How to perform code coverage in C++ using meson?

我在我的 C++ 项目中使用 meson 和 ninja 作为构建系统,并且我已经将 catch2 配置为测试框架。 我想知道如何使用我编写的测试执行代码覆盖。 我阅读了此页面,https://mesonbuild.com/Unit-tests.html 但我似乎不太清楚,有人可以帮忙吗?

您应该使用覆盖率相关目标之一:coverage-textcoverage-htmlcoverage-xml 如所述 here。或者只是 coverage 如果可能的话尝试所有这些:

$ ninja coverage -C builddir

结果写入 ./builddir/meson-logs 目录。

请注意,要生成 html 覆盖率报告,您需要安装 lcovgenhtml 二进制文件通过 lcov 包。