首页 > 解决方案 > 如何为 pytest 执行的 SWIG 编译的 C 代码生成代码覆盖率报告

问题描述

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

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

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

标签: pythoncpython-2.7swig

解决方案


gcov最终用仪器编译代码并用于gcovr生成覆盖率报告。一切正常。

为了使这项工作,使用以下标志编译代码(启用 gcov 检测)

CFLAGS_VAL += -O0 --coverage

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

要创建报告,请运行

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

GCOV 文档,在这里

同样可以使用 lcov 创建,在此wiki页面中遵循示例


推荐阅读