Category: Importer (takes in a coverage report generated by any coverage tool - see supported languages below)

The CoverageImporter generates visualisation data from a coverage report generated by any coverage tool. The coverage report must be in one of the supported formats (see below). The CoverageImporter generates node attributes for each file in the coverage report.

Supported Metrics

Metric Description
line_coverage The percentage of lines covered by tests in the file.
branch_coverage The percentage of branches covered by tests in the file.
statement_coverage The percentage of statements covered by tests in the file.
instruction_coverage The percentage of instructions covered by tests in the file.
complexity_coverage The percentage of complexity covered by tests.
method_coverage The percentage of methods covered by tests in the file.
class_coverage The percentage of classes covered by tests.

Supported Coverage Report Languages/Formats

Language Command Default Report File
JavaScript / TypeScript javascript/typescript, javascript, typescript, js, ts lcov.info
Java java jacoco.xml

Usage and Parameters

Parameters Description
<pathToReportFile> path to the coverage report file (when specifying a folder, the importer searches for a file matching the default file name - see above)
-l, --language specify the language of the coverage report (see above)
-h, --help displays help and exits
-nc, --not-compressed save uncompressed output File
-o, --output-file=<outputFilePath> output File (or empty for stdout)
Usage: ccsh coverageimport <pathToReportFile> [--language] [-h] [-nc] [-o=<outputFile>]...

Example

JavaScript / TypeScript

  1. Create a coverage report with your coverage tool, e.g. with Jest
  2. Import the coverage report with the CoverageImporter
  ccsh coverageimport lcov.info --language=javascript -o typescript_coverage.cc.json

Example File Content

JavaScript / TypeScript

Example Input file: lcov.info

TN:
SF:app/app.config.ts
FN:55,(anonymous_0)
FN:55,(anonymous_1)
FNF:2
FNH:0
FNDA:0,(anonymous_0)
FNDA:0,(anonymous_1)
DA:1,0
DA:2,0
DA:3,0
DA:4,0
DA:5,0
DA:6,0
DA:7,0
DA:8,0
DA:9,0
DA:10,0
DA:11,0
DA:12,0
DA:13,0
DA:14,0
DA:15,0
DA:16,0
DA:17,0
DA:18,0
DA:19,0
DA:20,0
DA:21,0
DA:22,0
DA:23,0
DA:24,0
DA:26,0
DA:55,0
LF:26
LH:0
BRF:0
BRH:0
end_of_record

Example Output file: typescript_coverage.cc.json

{
  "projectName": "typescript_coverage",
  "apiVersion": "1.2",
  "nodes": [
    {
      "name": "app/app.config.ts",
      "type": "File",
      "attributes": {
        "line_coverage": 0,
        "branch_coverage": 0,
        "statement_coverage": 0
      }
    }
  ],
  "edges": []
}

Updated: