![](/img/trans.png)
[英]How to generate code coverage report for SWIG-compiled C code executed by pytest
[英]Test coverage from SWIG-compiled C++/Python code
我有一个经典的SWIG设置,其中从Python调用一堆C ++函数。 现在,在添加一些测试(在Python中)之后,我想在C ++源代码上获得测试覆盖率。 经典的Python方法是
nosetests --with-coverage --cover-package=mypackage
但这只适用于本机Python模块。 实际上,这将返回SWIG生成的mypackage.py
文件的覆盖范围。
由于我需要覆盖C ++文件(/ SWIG生成的共享库),因此当然需要添加--coverage
来编译和链接器标志。 不知道从那里去哪里。
任何提示?
面对类似的问题,但用C代码。 它与SWIG部分无关,只需要使用coverage工具编译C ++代码并执行它。 我使用gcov
和gcovr
。
使用gcov
来完成这项工作,使用以下标志编译代码(启用gcov检测)
CFLAGS_VAL + = - O0 - 覆盖
然后,执行测试。 测试运行后,应生成.gcno和.gcda文件。
要创建覆盖率报告,请从根文件夹运行
gcovr -r。 --filter =“” - html --html-details -o coverage / coverage.html
GCOV docs, 这里
可以使用lcov创建相同的内容,请按照此Wiki页面中的示例进行操作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.