【问题标题】:How to generate code coverage report for SWIG-compiled C code executed by pytest如何为 pytest 执行的 SWIG 编译的 C 代码生成代码覆盖率报告
【发布时间】:2019-08-12 02:36:54
【问题描述】:

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

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

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

【问题讨论】:

  • 如果这是您的 C 代码,我认为您应该单独测试 C 层。如果是第三方,他们应该测试他们的代码。我不知道 gcov 和 pytest 之间有任何集成:/
  • 如果不相同,相关:stackoverflow.com/questions/39086957/…

标签: python c python-2.7 swig


【解决方案1】:

最终使用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 页面中做例子

【讨论】:

    猜你喜欢
    • 2021-06-26
    • 1970-01-01
    • 2011-05-14
    • 2019-09-02
    • 1970-01-01
    • 1970-01-01
    • 2011-03-09
    • 2019-01-29
    • 1970-01-01
    相关资源
    最近更新 更多