@code-pushup/coverage-plugin 0.67.0 → 0.69.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -3
- package/src/lib/runner/lcov/lcov-runner.js +9 -18
- package/src/lib/runner/lcov/lcov-runner.js.map +1 -1
- package/src/lib/runner/lcov/transform.d.ts +8 -11
- package/src/lib/runner/lcov/transform.js +39 -61
- package/src/lib/runner/lcov/transform.js.map +1 -1
- package/src/lib/runner/lcov/types.d.ts +0 -8
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@code-pushup/coverage-plugin",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.69.0",
|
|
4
4
|
"description": "Code PushUp plugin for tracking code coverage ☂",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/code-pushup/cli/tree/main/packages/plugin-coverage#readme",
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
},
|
|
35
35
|
"type": "module",
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@code-pushup/models": "0.
|
|
38
|
-
"@code-pushup/utils": "0.
|
|
37
|
+
"@code-pushup/models": "0.69.0",
|
|
38
|
+
"@code-pushup/utils": "0.69.0",
|
|
39
39
|
"ansis": "^3.3.0",
|
|
40
40
|
"parse-lcov": "^1.0.4",
|
|
41
41
|
"yargs": "^17.7.2",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
|
-
import { exists, readTextFile, toUnixNewlines, ui } from '@code-pushup/utils';
|
|
2
|
+
import { exists, getGitRoot, objectFromEntries, objectToEntries, readTextFile, toUnixNewlines, ui, } from '@code-pushup/utils';
|
|
3
3
|
import { mergeLcovResults } from './merge-lcov.js';
|
|
4
4
|
import { parseLcov } from './parse-lcov.js';
|
|
5
5
|
import { lcovCoverageToAuditOutput, recordToStatFunctionMapper, } from './transform.js';
|
|
@@ -17,14 +17,15 @@ export async function lcovResultsToAuditOutputs(results, coverageTypes) {
|
|
|
17
17
|
// Merge multiple coverage reports for the same file
|
|
18
18
|
const mergedResults = mergeLcovResults(lcovResults);
|
|
19
19
|
// Calculate code coverage from all coverage results
|
|
20
|
-
const totalCoverageStats =
|
|
20
|
+
const totalCoverageStats = groupLcovRecordsByCoverageType(mergedResults, coverageTypes);
|
|
21
|
+
const gitRoot = await getGitRoot();
|
|
21
22
|
return coverageTypes
|
|
22
23
|
.map(coverageType => {
|
|
23
24
|
const stats = totalCoverageStats[coverageType];
|
|
24
25
|
if (!stats) {
|
|
25
26
|
return null;
|
|
26
27
|
}
|
|
27
|
-
return lcovCoverageToAuditOutput(stats, coverageType);
|
|
28
|
+
return lcovCoverageToAuditOutput(stats, coverageType, gitRoot);
|
|
28
29
|
})
|
|
29
30
|
.filter(exists);
|
|
30
31
|
}
|
|
@@ -54,23 +55,13 @@ export async function parseLcovFiles(results) {
|
|
|
54
55
|
return parsedResults;
|
|
55
56
|
}
|
|
56
57
|
/**
|
|
57
|
-
*
|
|
58
|
-
* @param records
|
|
58
|
+
* This function aggregates coverage stats from all coverage files
|
|
59
|
+
* @param records LCOV record for each file
|
|
59
60
|
* @param coverageTypes Types of coverage to be gathered
|
|
60
61
|
* @returns Complete coverage stats for all defined types of coverage.
|
|
61
62
|
*/
|
|
62
|
-
function
|
|
63
|
-
return records.reduce((acc,
|
|
64
|
-
...Object.entries(acc),
|
|
65
|
-
...Object.entries(getCoverageStatsFromLcovRecord(report, coverageTypes)).map(([type, stats]) => [
|
|
66
|
-
type,
|
|
67
|
-
{
|
|
68
|
-
totalFound: (acc[type]?.totalFound ?? 0) + stats.totalFound,
|
|
69
|
-
totalHit: (acc[type]?.totalHit ?? 0) + stats.totalHit,
|
|
70
|
-
issues: [...(acc[type]?.issues ?? []), ...stats.issues],
|
|
71
|
-
},
|
|
72
|
-
]),
|
|
73
|
-
]), {});
|
|
63
|
+
function groupLcovRecordsByCoverageType(records, coverageTypes) {
|
|
64
|
+
return records.reduce((acc, record) => objectFromEntries(objectToEntries(getCoverageStatsFromLcovRecord(record, coverageTypes)).map(([type, file]) => [type, [...(acc[type] ?? []), file]])), {});
|
|
74
65
|
}
|
|
75
66
|
/**
|
|
76
67
|
* @param record record file data
|
|
@@ -78,7 +69,7 @@ function getTotalCoverageFromLcovRecords(records, coverageTypes) {
|
|
|
78
69
|
* @returns Relevant coverage data from one lcov record file.
|
|
79
70
|
*/
|
|
80
71
|
function getCoverageStatsFromLcovRecord(record, coverageTypes) {
|
|
81
|
-
return
|
|
72
|
+
return objectFromEntries(coverageTypes.map(coverageType => [
|
|
82
73
|
coverageType,
|
|
83
74
|
recordToStatFunctionMapper[coverageType](record),
|
|
84
75
|
]));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lcov-runner.js","sourceRoot":"","sources":["../../../../../../../packages/plugin-coverage/src/lib/runner/lcov/lcov-runner.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,
|
|
1
|
+
{"version":3,"file":"lcov-runner.js","sourceRoot":"","sources":["../../../../../../../packages/plugin-coverage/src/lib/runner/lcov/lcov-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
import type { LCOVRecord } from 'parse-lcov';
|
|
2
2
|
import type { AuditOutput } from '@code-pushup/models';
|
|
3
|
+
import { type FileCoverage } from '@code-pushup/utils';
|
|
3
4
|
import type { CoverageType } from '../../config.js';
|
|
4
|
-
|
|
5
|
-
export declare function
|
|
6
|
-
export declare function
|
|
7
|
-
export declare
|
|
8
|
-
export declare const recordToStatFunctionMapper: {
|
|
9
|
-
branch: typeof lcovReportToBranchStat;
|
|
10
|
-
line: typeof lcovReportToLineStat;
|
|
11
|
-
function: typeof lcovReportToFunctionStat;
|
|
12
|
-
};
|
|
5
|
+
export declare function lcovReportToFunctionStat(record: LCOVRecord): FileCoverage;
|
|
6
|
+
export declare function lcovReportToLineStat(record: LCOVRecord): FileCoverage;
|
|
7
|
+
export declare function lcovReportToBranchStat(record: LCOVRecord): FileCoverage;
|
|
8
|
+
export declare const recordToStatFunctionMapper: Record<CoverageType, (record: LCOVRecord) => FileCoverage>;
|
|
13
9
|
/**
|
|
14
10
|
*
|
|
15
|
-
* @param
|
|
11
|
+
* @param files code coverage of given type for all files
|
|
16
12
|
* @param coverageType code coverage type
|
|
13
|
+
* @param gitRoot root directory in repo, for relative paths
|
|
17
14
|
* @returns Result of complete code ccoverage data coverted to AuditOutput
|
|
18
15
|
*/
|
|
19
|
-
export declare function lcovCoverageToAuditOutput(
|
|
16
|
+
export declare function lcovCoverageToAuditOutput(files: FileCoverage[], coverageType: CoverageType, gitRoot: string): AuditOutput;
|
|
@@ -1,23 +1,19 @@
|
|
|
1
|
-
import { toNumberPrecision,
|
|
1
|
+
import { capitalize, filesCoverageToTree, toNumberPrecision, } from '@code-pushup/utils';
|
|
2
2
|
import { INVALID_FUNCTION_NAME } from '../constants.js';
|
|
3
|
-
import {
|
|
3
|
+
import { mergeConsecutiveNumbers } from './utils.js';
|
|
4
4
|
export function lcovReportToFunctionStat(record) {
|
|
5
5
|
const validRecord = removeEmptyReport(record);
|
|
6
6
|
return {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
position: { startLine: detail.line },
|
|
18
|
-
},
|
|
19
|
-
}))
|
|
20
|
-
: [],
|
|
7
|
+
path: validRecord.file,
|
|
8
|
+
covered: validRecord.functions.hit,
|
|
9
|
+
total: validRecord.functions.found,
|
|
10
|
+
missing: validRecord.functions.details
|
|
11
|
+
.filter(detail => !detail.hit)
|
|
12
|
+
.map(detail => ({
|
|
13
|
+
startLine: detail.line,
|
|
14
|
+
kind: 'function',
|
|
15
|
+
name: detail.name,
|
|
16
|
+
})),
|
|
21
17
|
};
|
|
22
18
|
}
|
|
23
19
|
function removeEmptyReport(record) {
|
|
@@ -35,52 +31,32 @@ function removeEmptyReport(record) {
|
|
|
35
31
|
};
|
|
36
32
|
}
|
|
37
33
|
export function lcovReportToLineStat(record) {
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
.map(detail => detail.line)
|
|
43
|
-
: [];
|
|
44
|
-
const linePositions = mergeConsecutiveNumbers(lines);
|
|
34
|
+
const lines = record.lines.details
|
|
35
|
+
.filter(detail => !detail.hit)
|
|
36
|
+
.map(detail => detail.line);
|
|
37
|
+
const lineRanges = mergeConsecutiveNumbers(lines);
|
|
45
38
|
return {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
return {
|
|
54
|
-
message: `${lineReference} not covered in any test case.`,
|
|
55
|
-
severity: 'warning',
|
|
56
|
-
source: {
|
|
57
|
-
file: record.file,
|
|
58
|
-
position: {
|
|
59
|
-
startLine: linePosition.start,
|
|
60
|
-
endLine: linePosition.end,
|
|
61
|
-
},
|
|
62
|
-
},
|
|
63
|
-
};
|
|
64
|
-
})
|
|
65
|
-
: [],
|
|
39
|
+
path: record.file,
|
|
40
|
+
covered: record.lines.hit,
|
|
41
|
+
total: record.lines.found,
|
|
42
|
+
missing: lineRanges.map(({ start, end }) => ({
|
|
43
|
+
startLine: start,
|
|
44
|
+
endLine: end,
|
|
45
|
+
})),
|
|
66
46
|
};
|
|
67
47
|
}
|
|
68
48
|
export function lcovReportToBranchStat(record) {
|
|
69
49
|
return {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
position: { startLine: detail.line },
|
|
81
|
-
},
|
|
82
|
-
}))
|
|
83
|
-
: [],
|
|
50
|
+
path: record.file,
|
|
51
|
+
covered: record.branches.hit,
|
|
52
|
+
total: record.branches.found,
|
|
53
|
+
missing: record.branches.details
|
|
54
|
+
.filter(detail => !detail.taken)
|
|
55
|
+
.map(detail => ({
|
|
56
|
+
startLine: detail.line,
|
|
57
|
+
kind: 'branch',
|
|
58
|
+
name: detail.branch.toString(),
|
|
59
|
+
})),
|
|
84
60
|
};
|
|
85
61
|
}
|
|
86
62
|
export const recordToStatFunctionMapper = {
|
|
@@ -90,12 +66,14 @@ export const recordToStatFunctionMapper = {
|
|
|
90
66
|
};
|
|
91
67
|
/**
|
|
92
68
|
*
|
|
93
|
-
* @param
|
|
69
|
+
* @param files code coverage of given type for all files
|
|
94
70
|
* @param coverageType code coverage type
|
|
71
|
+
* @param gitRoot root directory in repo, for relative paths
|
|
95
72
|
* @returns Result of complete code ccoverage data coverted to AuditOutput
|
|
96
73
|
*/
|
|
97
|
-
export function lcovCoverageToAuditOutput(
|
|
98
|
-
const
|
|
74
|
+
export function lcovCoverageToAuditOutput(files, coverageType, gitRoot) {
|
|
75
|
+
const tree = filesCoverageToTree(files, gitRoot, `${capitalize(coverageType)} coverage`);
|
|
76
|
+
const coverage = tree.root.values.coverage;
|
|
99
77
|
const MAX_DECIMAL_PLACES = 4;
|
|
100
78
|
const coveragePercentage = coverage * 100;
|
|
101
79
|
return {
|
|
@@ -104,7 +82,7 @@ export function lcovCoverageToAuditOutput(stat, coverageType) {
|
|
|
104
82
|
value: coveragePercentage,
|
|
105
83
|
displayValue: `${toNumberPrecision(coveragePercentage, 1)} %`,
|
|
106
84
|
details: {
|
|
107
|
-
|
|
85
|
+
trees: [tree],
|
|
108
86
|
},
|
|
109
87
|
};
|
|
110
88
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../../../../../packages/plugin-coverage/src/lib/runner/lcov/transform.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../../../../../packages/plugin-coverage/src/lib/runner/lcov/transform.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,UAAU,EACV,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAErD,MAAM,UAAU,wBAAwB,CAAC,MAAkB;IACzD,MAAM,WAAW,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAE9C,OAAO;QACL,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG;QAClC,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,KAAK;QAClC,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,OAAO;aACnC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aAC7B,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACd,SAAS,EAAE,MAAM,CAAC,IAAI;YACtB,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAC,CAAC;KACN,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAkB;IAC3C,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CACpD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,qBAAqB,CAChD,CAAC;IAEF,IAAI,cAAc,CAAC,MAAM,KAAK,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACrD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO;QACL,GAAG,MAAM;QACT,SAAS,EAAE;YACT,OAAO,EAAE,cAAc;YACvB,KAAK,EAAE,cAAc,CAAC,MAAM;YAC5B,GAAG,EAAE,cAAc,CAAC,MAAM,CACxB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACzD,CAAC,CACF;SACF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAkB;IACrD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO;SAC/B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SAC7B,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE9B,MAAM,UAAU,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAElD,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG;QACzB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK;QACzB,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3C,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,GAAG;SACb,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAkB;IACvD,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG;QAC5B,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK;QAC5B,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO;aAC7B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC/B,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACd,SAAS,EAAE,MAAM,CAAC,IAAI;YACtB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;SAC/B,CAAC,CAAC;KACN,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,0BAA0B,GAGnC;IACF,MAAM,EAAE,sBAAsB;IAC9B,IAAI,EAAE,oBAAoB;IAC1B,QAAQ,EAAE,wBAAwB;CACnC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAqB,EACrB,YAA0B,EAC1B,OAAe;IAEf,MAAM,IAAI,GAAG,mBAAmB,CAC9B,KAAK,EACL,OAAO,EACP,GAAG,UAAU,CAAC,YAAY,CAAC,WAAW,CACvC,CAAC;IACF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC3C,MAAM,kBAAkB,GAAG,CAAC,CAAC;IAC7B,MAAM,kBAAkB,GAAG,QAAQ,GAAG,GAAG,CAAC;IAE1C,OAAO;QACL,IAAI,EAAE,GAAG,YAAY,WAAW;QAChC,KAAK,EAAE,iBAAiB,CAAC,QAAQ,EAAE,kBAAkB,CAAC;QACtD,KAAK,EAAE,kBAAkB;QACzB,YAAY,EAAE,GAAG,iBAAiB,CAAC,kBAAkB,EAAE,CAAC,CAAC,IAAI;QAC7D,OAAO,EAAE;YACP,KAAK,EAAE,CAAC,IAAI,CAAC;SACd;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
import type { Issue } from '@code-pushup/models';
|
|
2
|
-
import type { CoverageType } from '../../config.js';
|
|
3
|
-
export type LCOVStat = {
|
|
4
|
-
totalFound: number;
|
|
5
|
-
totalHit: number;
|
|
6
|
-
issues: Issue[];
|
|
7
|
-
};
|
|
8
|
-
export type LCOVStats = Partial<Record<CoverageType, LCOVStat>>;
|
|
9
1
|
export type NumberRange = {
|
|
10
2
|
start: number;
|
|
11
3
|
end?: number;
|