@code-pushup/coverage-plugin 0.58.0 → 0.60.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/config.d.ts +3 -0
- package/src/lib/config.js +5 -0
- package/src/lib/config.js.map +1 -1
- package/src/lib/runner/index.js +11 -6
- package/src/lib/runner/index.js.map +1 -1
- package/src/lib/runner/lcov/lcov-runner.js +5 -9
- package/src/lib/runner/lcov/lcov-runner.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@code-pushup/coverage-plugin",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.60.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.60.0",
|
|
38
|
+
"@code-pushup/utils": "0.60.0",
|
|
39
39
|
"ansis": "^3.3.0",
|
|
40
40
|
"parse-lcov": "^1.0.4",
|
|
41
41
|
"yargs": "^17.7.2",
|
package/src/lib/config.d.ts
CHANGED
|
@@ -23,6 +23,7 @@ export declare const coveragePluginConfigSchema: z.ZodObject<{
|
|
|
23
23
|
command: string;
|
|
24
24
|
args?: string[] | undefined;
|
|
25
25
|
}>>;
|
|
26
|
+
continueOnCommandFail: z.ZodDefault<z.ZodBoolean>;
|
|
26
27
|
coverageTypes: z.ZodDefault<z.ZodArray<z.ZodEnum<["function", "branch", "line"]>, "many">>;
|
|
27
28
|
reports: z.ZodArray<z.ZodUnion<[z.ZodObject<{
|
|
28
29
|
resultsPath: z.ZodString;
|
|
@@ -36,6 +37,7 @@ export declare const coveragePluginConfigSchema: z.ZodObject<{
|
|
|
36
37
|
}>, z.ZodString]>, "many">;
|
|
37
38
|
perfectScoreThreshold: z.ZodOptional<z.ZodNumber>;
|
|
38
39
|
}, "strip", z.ZodTypeAny, {
|
|
40
|
+
continueOnCommandFail: boolean;
|
|
39
41
|
coverageTypes: ("function" | "branch" | "line")[];
|
|
40
42
|
reports: (string | {
|
|
41
43
|
resultsPath: string;
|
|
@@ -55,6 +57,7 @@ export declare const coveragePluginConfigSchema: z.ZodObject<{
|
|
|
55
57
|
command: string;
|
|
56
58
|
args?: string[] | undefined;
|
|
57
59
|
} | undefined;
|
|
60
|
+
continueOnCommandFail?: boolean | undefined;
|
|
58
61
|
coverageTypes?: ("function" | "branch" | "line")[] | undefined;
|
|
59
62
|
perfectScoreThreshold?: number | undefined;
|
|
60
63
|
}>;
|
package/src/lib/config.js
CHANGED
|
@@ -32,6 +32,11 @@ export const coveragePluginConfigSchema = z.object({
|
|
|
32
32
|
.optional(),
|
|
33
33
|
})
|
|
34
34
|
.optional(),
|
|
35
|
+
continueOnCommandFail: z
|
|
36
|
+
.boolean({
|
|
37
|
+
description: 'Continue on coverage tool command failure or error. Defaults to true.',
|
|
38
|
+
})
|
|
39
|
+
.default(true),
|
|
35
40
|
coverageTypes: z
|
|
36
41
|
.array(coverageTypeSchema, {
|
|
37
42
|
description: 'Coverage types measured. Defaults to all available types.',
|
package/src/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../packages/plugin-coverage/src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAGzE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC;IAC1C,CAAC,CAAC,MAAM,CAAC;QACP,WAAW,EAAE,CAAC;aACX,MAAM,CAAC;YACN,WAAW,EAAE,wCAAwC;SACtD,CAAC;aACD,QAAQ,CAAC,MAAM,CAAC;QACnB,aAAa,EAAE,CAAC;aACb,MAAM,CAAC;YACN,WAAW,EACT,qGAAqG;SACxG,CAAC;aACD,QAAQ,EAAE;KACd,CAAC;IACF,CAAC;SACE,MAAM,CAAC;QACN,WAAW,EAAE,sDAAsD;KACpE,CAAC;SACD,QAAQ,CAAC,MAAM,CAAC;CACpB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,mBAAmB,EAAE,CAAC;SACnB,MAAM,CAAC;QACN,OAAO,EAAE,CAAC;aACP,MAAM,CAAC,EAAE,WAAW,EAAE,+BAA+B,EAAE,CAAC;aACxD,GAAG,CAAC,CAAC,CAAC;QACT,IAAI,EAAE,CAAC;aACJ,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE;YACjB,WAAW,EAAE,8CAA8C;SAC5D,CAAC;aACD,QAAQ,EAAE;KACd,CAAC;SACD,QAAQ,EAAE;IACb,aAAa,EAAE,CAAC;SACb,KAAK,CAAC,kBAAkB,EAAE;QACzB,WAAW,EAAE,2DAA2D;KACzE,CAAC;SACD,GAAG,CAAC,CAAC,CAAC;SACN,OAAO,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC1C,OAAO,EAAE,CAAC;SACP,KAAK,CAAC,oBAAoB,EAAE;QAC3B,WAAW,EACT,gFAAgF;KACnF,CAAC;SACD,GAAG,CAAC,CAAC,CAAC;IACT,qBAAqB,EAAE,CAAC;SACrB,MAAM,CAAC;QACN,WAAW,EACT,8EAA8E;KACjF,CAAC;SACD,EAAE,CAAC,CAAC,CAAC;SACL,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;CACd,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../packages/plugin-coverage/src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAGzE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC;IAC1C,CAAC,CAAC,MAAM,CAAC;QACP,WAAW,EAAE,CAAC;aACX,MAAM,CAAC;YACN,WAAW,EAAE,wCAAwC;SACtD,CAAC;aACD,QAAQ,CAAC,MAAM,CAAC;QACnB,aAAa,EAAE,CAAC;aACb,MAAM,CAAC;YACN,WAAW,EACT,qGAAqG;SACxG,CAAC;aACD,QAAQ,EAAE;KACd,CAAC;IACF,CAAC;SACE,MAAM,CAAC;QACN,WAAW,EAAE,sDAAsD;KACpE,CAAC;SACD,QAAQ,CAAC,MAAM,CAAC;CACpB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,mBAAmB,EAAE,CAAC;SACnB,MAAM,CAAC;QACN,OAAO,EAAE,CAAC;aACP,MAAM,CAAC,EAAE,WAAW,EAAE,+BAA+B,EAAE,CAAC;aACxD,GAAG,CAAC,CAAC,CAAC;QACT,IAAI,EAAE,CAAC;aACJ,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE;YACjB,WAAW,EAAE,8CAA8C;SAC5D,CAAC;aACD,QAAQ,EAAE;KACd,CAAC;SACD,QAAQ,EAAE;IACb,qBAAqB,EAAE,CAAC;SACrB,OAAO,CAAC;QACP,WAAW,EACT,uEAAuE;KAC1E,CAAC;SACD,OAAO,CAAC,IAAI,CAAC;IAChB,aAAa,EAAE,CAAC;SACb,KAAK,CAAC,kBAAkB,EAAE;QACzB,WAAW,EAAE,2DAA2D;KACzE,CAAC;SACD,GAAG,CAAC,CAAC,CAAC;SACN,OAAO,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC1C,OAAO,EAAE,CAAC;SACP,KAAK,CAAC,oBAAoB,EAAE;QAC3B,WAAW,EACT,gFAAgF;KACnF,CAAC;SACD,GAAG,CAAC,CAAC,CAAC;IACT,qBAAqB,EAAE,CAAC;SACrB,MAAM,CAAC;QACN,WAAW,EACT,8EAA8E;KACjF,CAAC;SACD,EAAE,CAAC,CAAC,CAAC;SACL,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;CACd,CAAC,CAAC"}
|
package/src/lib/runner/index.js
CHANGED
|
@@ -5,7 +5,7 @@ import { ProcessError, createRunnerFiles, ensureDirectoryExists, executeProcess,
|
|
|
5
5
|
import { applyMaxScoreAboveThreshold } from '../utils.js';
|
|
6
6
|
import { lcovResultsToAuditOutputs } from './lcov/lcov-runner.js';
|
|
7
7
|
export async function executeRunner({ runnerConfigPath, runnerOutputPath, }) {
|
|
8
|
-
const { reports, coverageToolCommand, coverageTypes } = await readJsonFile(runnerConfigPath);
|
|
8
|
+
const { reports, coverageToolCommand, continueOnCommandFail, coverageTypes } = await readJsonFile(runnerConfigPath);
|
|
9
9
|
// Run coverage tool if provided
|
|
10
10
|
if (coverageToolCommand != null) {
|
|
11
11
|
const { command, args } = coverageToolCommand;
|
|
@@ -14,12 +14,17 @@ export async function executeRunner({ runnerConfigPath, runnerOutputPath, }) {
|
|
|
14
14
|
}
|
|
15
15
|
catch (error) {
|
|
16
16
|
if (error instanceof ProcessError) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
const loggingFn = continueOnCommandFail
|
|
18
|
+
? ui().logger.warning.bind(ui().logger)
|
|
19
|
+
: ui().logger.error.bind(ui().logger);
|
|
20
|
+
loggingFn(bold('stdout from failed coverage tool process:'));
|
|
21
|
+
loggingFn(error.stdout);
|
|
22
|
+
loggingFn(bold('stderr from failed coverage tool process:'));
|
|
23
|
+
loggingFn(error.stderr);
|
|
24
|
+
}
|
|
25
|
+
if (!continueOnCommandFail) {
|
|
26
|
+
throw new Error('Coverage plugin: Running coverage tool failed. Make sure all your provided tests are passing.');
|
|
21
27
|
}
|
|
22
|
-
throw new Error('Coverage plugin: Running coverage tool failed. Make sure all your provided tests are passing.');
|
|
23
28
|
}
|
|
24
29
|
}
|
|
25
30
|
// Calculate coverage from LCOV results
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugin-coverage/src/lib/runner/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,IAAI,MAAM,WAAW,CAAC;AAM7B,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,EAAE,GACH,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAElE,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAClC,gBAAgB,EAChB,gBAAgB,GACC;IACjB,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugin-coverage/src/lib/runner/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,7 +34,7 @@ export async function lcovResultsToAuditOutputs(results, coverageTypes) {
|
|
|
34
34
|
* @returns Array of parsed LCOVRecords.
|
|
35
35
|
*/
|
|
36
36
|
export async function parseLcovFiles(results) {
|
|
37
|
-
const parsedResults = await Promise.all(results.map(async (result) => {
|
|
37
|
+
const parsedResults = (await Promise.all(results.map(async (result) => {
|
|
38
38
|
const resultsPath = typeof result === 'string' ? result : result.resultsPath;
|
|
39
39
|
const lcovFileContent = await readTextFile(resultsPath);
|
|
40
40
|
if (lcovFileContent.trim() === '') {
|
|
@@ -47,15 +47,11 @@ export async function parseLcovFiles(results) {
|
|
|
47
47
|
? record.file
|
|
48
48
|
: path.join(result.pathToProject, record.file),
|
|
49
49
|
}));
|
|
50
|
-
}));
|
|
51
|
-
if (parsedResults.length
|
|
52
|
-
throw new Error('
|
|
50
|
+
}))).flat();
|
|
51
|
+
if (parsedResults.length === 0) {
|
|
52
|
+
throw new Error('All provided coverage results are empty.');
|
|
53
53
|
}
|
|
54
|
-
|
|
55
|
-
if (flatResults.length === 0) {
|
|
56
|
-
throw new Error('All provided results are empty.');
|
|
57
|
-
}
|
|
58
|
-
return flatResults;
|
|
54
|
+
return parsedResults;
|
|
59
55
|
}
|
|
60
56
|
/**
|
|
61
57
|
*
|
|
@@ -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,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAE9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EACL,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,gBAAgB,CAAC;AAGxB,iEAAiE;AACjE,oGAAoG;AAEpG;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,OAAyB,EACzB,aAA6B;IAE7B,mBAAmB;IACnB,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;IAElD,oDAAoD;IACpD,MAAM,aAAa,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAEpD,oDAAoD;IACpD,MAAM,kBAAkB,GAAG,+BAA+B,CACxD,aAAa,EACb,aAAa,CACd,CAAC;IAEF,OAAO,aAAa;SACjB,GAAG,CAAC,YAAY,CAAC,EAAE;QAClB,MAAM,KAAK,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,yBAAyB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACxD,CAAC,CAAC;SACD,MAAM,CAAC,MAAM,CAAC,CAAC;AACpB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAyB;IAEzB,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,
|
|
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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"}
|