UNPKG

@code-pushup/coverage-plugin

Version:
39 lines 1.66 kB
import { executeProcess, formatAsciiTable, logger, pluralizeToken, } from '@code-pushup/utils'; import { slugToTitle } from '../format.js'; import { lcovResultsToAuditOutputs } from './lcov/lcov-runner.js'; export function createRunnerFunction(config) { return async () => { const { reports, coverageToolCommand, continueOnCommandFail, coverageTypes, } = config; // Run coverage tool if provided if (coverageToolCommand == null) { logger.info('No test command provided, assuming coverage has already been collected'); } else { logger.info('Executing test command to collect coverage ...'); const { command, args } = coverageToolCommand; try { await executeProcess({ command, args }); } catch { if (!continueOnCommandFail) { throw new Error('Running coverage tool failed. Make sure all your tests are passing.'); } } } // Calculate coverage from LCOV results const auditOutputs = await lcovResultsToAuditOutputs(reports, coverageTypes); logAuditOutputs(auditOutputs); return auditOutputs; }; } function logAuditOutputs(auditOutputs) { logger.info(`Transformed LCOV reports to ${pluralizeToken('audit output', auditOutputs.length)}`); logger.info(formatAsciiTable({ columns: ['left', 'right'], rows: auditOutputs.map(audit => [ `• ${slugToTitle(audit.slug)}`, `${audit.value.toFixed(2)}%`, ]), }, { borderless: true })); } //# sourceMappingURL=runner.js.map