我有一个经典的SWIG设置,其中从Python调用一堆C ++函数。现在,在添加一些测试(在Python中)之后,我想在C ++源代码上获得测试覆盖率。经典的Python方法是
echoxx.bat
但这仅适用于本机Python模块。实际上,这将返回SWIG生成的subdir
文件的覆盖范围。
由于我需要覆盖C ++文件(/ SWIG生成的共享库),因此当然需要为编译和链接器标志添加nosetests --with-coverage --cover-package=mypackage
。不知道从那里去哪里。
任何提示?
答案 0 :(得分:0)
遇到类似的问题,但带有C代码。它与SWIG部分无关,只需要使用coverage工具编译您的C ++代码并执行它即可。我为此使用了gcov
和gcovr
。
使用gcov
,要执行此操作,请使用以下标志编译代码(启用gcov检测)
CFLAGS_VAL + = -O0-覆盖率
然后执行测试。在测试运行之后,应生成.gcno和.gcda文件。
要创建覆盖率报告,请从您的根文件夹运行
gcovr -r。 --filter =“” --html --html-details -o coverage / coverage.html
GCOV文档,here
同一人可以使用lcov创建,请按照此wiki页中的示例