如何为 pytest 执行的 SWIG 编译的 C 代码生成代码覆盖率报告

How to generate code coverage report for SWIG-compiled C code executed by pytest

使用 SWIG 2.0 从 python 测试框架执行 C 代码,在我的例子中是 pytest。

有没有办法配置 SWIG 生成已执行 C 代码的代码覆盖率报告?与 bullseye, gcov 或其他类似工具的一些集成?

尝试查看网络和 SWIG 文档。没有找到任何有用的资源。有的话请指点我

最终使用 gcov 工具编译代码并使用 gcovr 生成覆盖率报告。一切正常。

要完成这项工作,请使用以下标志编译代码(启用 gcov 检测)

CFLAGS_VAL += -O0 --coverage

然后,执行测试,应该会生成.gcno.gcda个文件。

要创建报告,运行

gcovr -r . --filter="<src path>" --html --html-details -o coverage/coverage.html

GCOV 文档,here

同样可以使用 lcov 创建,请按照此 wiki 页面中的示例进行操作