Supported Coverage Report Formats

Codecov centrally ingests .xml .json and .txt type coverage report formats.

If your language / test suite does not generate one of these format coverage reports, you may need to add a conversion step to your build process.

Generally Supported Code Coverage Formats

Supported code coverage report format types include all test coverage reports we've seen in the wild so far, including:

  • Most of .xml format types (Cobertura XML, Jacoco XML, etc.)
  • Most of .json format types (Erlang JSON, Elm JSON, etc.)
  • Most of .txt format types (Lcov TXT, Gcov TXT, Golang Txt)

See the exhaustive list below

Non-Supported Code Coverage Formats

Non-supported code coverage report format types include:

.xccov (Xcode)
.ec
.exec
.coverage (Python)
.html

Exhaustive acceptable report formats

Codecov processes reports server side and accepts report formats we have come across over the years. Below is a list of acceptable coverage report formats.

xml_processors = [
BullseyeProcessor() # [c++] ("Function Coverage" only)
CloverProcessor(), # [php] via clover
CoberturaProcessor() # [python] via cobertura
CSharpProcessor(),
JacocoProcessor(), # [java] via jacoco
JetBrainsXMLProcessor(), # [jetbrainsxml] JetBrains DetailedXML
MonoProcessor(), # [c# mono]
SCoverageProcessor() # [scala] via scoverage
VbProcessor(), # [c++] [c#]
VbTwoProcessor(), # [c++] [c#]
]

txt_processors = [
DLSTProcessor(), # [dlst]
GapProcessor(),
GcovProcessor(), # [gcov]
GoProcessor(),
LcovProcessor(), # [lcov] - Graphical version of Gcov
LuaProcessor(), # [lua]
XCodeProcessor() # [xcode] - Native iOS development
]

json_processors = [
CoverallsProcessor(),
ElmProcessor(),
FlowcoverProcessor(),
GapProcessor(),
NodeProcessor(),
RlangProcessor(), # [r lang]
RspecProcessor(), # [rspec]
SalesforceProcessor(),
ScalaProcessor(),
VOneProcessor(),
]

Recommended Formats

Codecov can (on occasion) have issues processing some coverage report formats. Below is a handy list of alternatives that you may want to consider

Ruby

SimpleCov's json output is currently incompatible with Codecov's json parser for coverage. Using SimpleCov's json output can cause processing errors on Codecov. While we're working to remedy this, in the meantime you can generate SimpleCov output as lcov or cobertura and it will be processed correctly by Codecov: