测试覆盖swig编译的c++ /Python代码
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部分无关,只需要用覆盖工具编译c++代码并执行它。我用了gcov
和gcovr
。
对于gcov
,要使其工作,使用以下标志编译代码(启用gcov插装)
CFLAGS_VAL += - 0——coverage
然后,执行测试。在测试运行之后,应该生成.gcno和.gcda文件。
要创建覆盖率报告,从根文件夹
运行gcovr -r。——filter="——html——html-details -o coverage/coverage.html
GCOV docs, here
同样可以用lcov创建,遵循本wiki页面中的示例
相关文章:
- 连续运行C++代码和 Python 代码
- 在cpp中使用boost-python的python代码是否进行动态内存分配
- 加快一个长python代码的速度,因为只有一个块,所以速度很慢
- 我最近更改了编译器路径以运行 c++ 代码,但现在我无法运行任何 python 代码。我该如何解决这个问题?
- 编译在 Python 代码内部调用的 C++ 代码时出错,使用 Boost Python
- 在 boost::p ython 中的 python 对象中运行 python 代码
- 如何从Visual Studio中的给出.pyd输出中构造Python代码
- 我们如何知道 python 代码在 C 或 C++ 中是否处于永无止境的循环中
- 如何隐藏嵌入在 c++ 应用程序中的 python 代码
- 从C 启动多线程Python代码
- 在用 C++ 编写的 Python 3 扩展中,如何将 wstring 对象传递给 Python 代码
- 在这段 python 代码中,大于符号是什么意思
- 如果C/C Python3扩展托管HTTP服务器并将Python代码称为请求处理程序,则如何处理并发
- 如何嵌入在C++中设置标志的 python 代码
- 如何在Ubuntu 16.04上的Anaconda环境中将OpenCV C 代码与Python代码集成在一起
- PYBIND11:如何将C 和Python代码包装到一个包装中
- 程序在Windows中的DLL边界上使用嵌入式Python/C 代码崩溃
- 如何在C 中插入Python代码
- 导入Python库时,嵌入了Python代码错误
- 如何将此 Python 代码转换为C++