Test Coverage Merger is a powerful tool designed to merge multiple LCOV reports generated by test runners and produce a consolidated HTML report. This tool is ideal for aggregating code coverage data from various test suites into a single, easy-to-read format. More details for lcov
- Merge LCOV Reports: Combine multiple LCOV reports into a single report.
- Generate HTML Reports: Create a detailed HTML report from the merged LCOV data.
- Comprehensive Coverage Statistics: Provides detailed statistics for lines, branches, functions, and statements.
To use Test Coverage Merger in your project, ensure you have Node.js and npm installed. Then, install the package via npm:
npm install test-coverage-merger
Programmatic API
-
Using
testCoverageMerger
This is the main function to merge LCOV reports and generate an HTML report.
import { testCoverageMerger } from 'test-coverage-merger';
const coverageReports = [
'path/to/report1-lcov.info',
'path/to/report2-lcov.info',
];
const rootPath = 'test-reports';
const mergedLcovFileName = 'merged-report';
const outputHtmlFileName = 'final-report';
testCoverageMerger({
rootPath,
mergedLcovFileName,
outputHtmlFileName,
coverageReports,
});
-
rootPath
: The directory where the merged LCOV file and HTML report will be saved. Default is 'test-reports'. -
mergedLcovFileName
: The name of the merged LCOV file. Default is 'merged-report'. -
outputHtmlFileName
: The name of the output HTML report file. Default is 'final-report'. -
coverageReports
: An array of paths to the LCOV report files to be merged.
- Independent Use of Modules
mergeLcovReports
This function merges multiple LCOV files into a single file.
import { mergeLcovReports } from 'test-coverage-merger/merge-lcov-reports';
const reports = ['path/to/report1.lcov', 'path/to/report2.lcov'];
const outputPath = 'path/to/merged-report.lcov';
mergeLcovReports(reports, outputPath);
lcovFileParser
This function parses an LCOV file and returns structured data.
import { lcovFileParser } from 'test-coverage-merger/lcov-file-parser';
const lcovData = `TN:
SF:file1.ts
DA:1,1
DA:2,0
end_of_record`;
lcovFileParser(lcovData, (err, parsedData) => {
if (err) {
console.error('Error parsing LCOV data:', err);
} else {
console.log('Parsed LCOV data:', parsedData);
}
});
htmlReportGenerator
This function generates an HTML report from parsed LCOV data.
import { htmlReportGenerator } from 'test-coverage-merger/html-report-generator';
const parsedData = [
{
file: 'file1.ts',
lines: { found: 2, hit: 1 },
branches: { found: 0, hit: 0 },
functions: { found: 0, hit: 0 },
statements: { found: 2, hit: 1 },
},
];
const coverageReports = ['path/to/report1.lcov', 'path/to/report2.lcov'];
const htmlReport = htmlReportGenerator(parsedData, coverageReports);
console.log(htmlReport);