This project does as the name implies: it converts code coverage report files in lcov format to Cobertura's XML report format so that CI servers like Jenkins can aggregate results and determine build stability etc.
Coverage metrics supported:
- Package/folder overall line and branch coverage
- Class/file overall line and branch coverage
- Functions hit
- Line and Branch hits
Grab it raw and run it with python:
python lcov_cobertura.py lcov-file.dat
-b/--base-dir
- (Optional) Directory where source files are located. Defaults to the current directory-e/--excludes
- (Optional) Comma-separated list of regexes of packages to exclude-o/--output
- (Optional) Path to store cobertura xml file. Defaults to ./coverage.xml-d/--demangle
- (Optional) Demangle C++ function names. Requires c++filt
python lcov_cobertura.py lcov-file.dat --base-dir src/dir --excludes test.lib --output build/coverage.xml --demangle
With pip:
pip install lcov_cobertura
lcov_cobertura lcov-file.dat
-b/--base-dir
- (Optional) Directory where source files are located. Defaults to the current directory-e/--excludes
- (Optional) Comma-separated list of regexes of packages to exclude-o/--output
- (Optional) Path to store cobertura xml file. Defaults to ./coverage.xml-d/--demangle
- (Optional) Demangle C++ function names. Requires c++filt
lcov_cobertura lcov-file.dat --base-dir src/dir --excludes test.lib --output build/coverage.xml --demangle
Use it anywhere in your python:
from lcov_cobertura import LcovCobertura
LCOV_INPUT = 'SF:foo/file.ext\nDA:1,1\nDA:2,0\nend_of_record\n'
converter = LcovCobertura(LCOV_INPUT)
cobertura_xml = converter.convert()
print(cobertura_xml)
Python 3.8+ is supported. The last release with Python 2.x support is version 1.6.
This project is made possible due to the efforts of these fine people:
This project is provided under the Apache License, Version 2.0.