@vitest/coverage-v8 3.1.1 → 3.1.2
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/dist/index.js +16 -12
- package/dist/provider.js +29 -1
- package/package.json +7 -7
package/dist/index.js
CHANGED
@@ -6,17 +6,17 @@ import { l as loadProvider } from './load-provider-pEnu7lco.js';
|
|
6
6
|
const session = new inspector.Session();
|
7
7
|
let enabled = false;
|
8
8
|
const mod = {
|
9
|
-
startCoverage({ isolate }) {
|
9
|
+
async startCoverage({ isolate }) {
|
10
10
|
if (isolate === false && enabled) {
|
11
11
|
return;
|
12
12
|
}
|
13
13
|
enabled = true;
|
14
14
|
session.connect();
|
15
|
-
session.post("Profiler.enable");
|
16
|
-
session.post("Profiler.startPreciseCoverage", {
|
15
|
+
await new Promise((resolve) => session.post("Profiler.enable", resolve));
|
16
|
+
await new Promise((resolve) => session.post("Profiler.startPreciseCoverage", {
|
17
17
|
callCount: true,
|
18
18
|
detailed: true
|
19
|
-
});
|
19
|
+
}, resolve));
|
20
20
|
},
|
21
21
|
takeCoverage(options) {
|
22
22
|
return new Promise((resolve, reject) => {
|
@@ -24,23 +24,27 @@ const mod = {
|
|
24
24
|
if (error) {
|
25
25
|
return reject(error);
|
26
26
|
}
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
27
|
+
try {
|
28
|
+
const result = coverage.result.filter(filterResult).map((res) => ({
|
29
|
+
...res,
|
30
|
+
startOffset: options?.moduleExecutionInfo?.get(fileURLToPath(res.url))?.startOffset || 0
|
31
|
+
}));
|
32
|
+
resolve({ result });
|
33
|
+
} catch (e) {
|
34
|
+
reject(e);
|
35
|
+
}
|
32
36
|
});
|
33
37
|
if (provider === "stackblitz") {
|
34
38
|
resolve({ result: [] });
|
35
39
|
}
|
36
40
|
});
|
37
41
|
},
|
38
|
-
stopCoverage({ isolate }) {
|
42
|
+
async stopCoverage({ isolate }) {
|
39
43
|
if (isolate === false) {
|
40
44
|
return;
|
41
45
|
}
|
42
|
-
session.post("Profiler.stopPreciseCoverage");
|
43
|
-
session.post("Profiler.disable");
|
46
|
+
await new Promise((resolve) => session.post("Profiler.stopPreciseCoverage", resolve));
|
47
|
+
await new Promise((resolve) => session.post("Profiler.disable", resolve));
|
44
48
|
session.disconnect();
|
45
49
|
},
|
46
50
|
async getProvider() {
|
package/dist/provider.js
CHANGED
@@ -2539,7 +2539,7 @@ new Set([
|
|
2539
2539
|
"wasi"
|
2540
2540
|
]);
|
2541
2541
|
|
2542
|
-
var version = "3.1.
|
2542
|
+
var version = "3.1.2";
|
2543
2543
|
|
2544
2544
|
const VITE_EXPORTS_LINE_PATTERN = /Object\.defineProperty\(__vite_ssr_exports__.*\n/g;
|
2545
2545
|
const DECORATOR_METADATA_PATTERN = /_ts_metadata\("design:paramtypes", \[[^\]]*\]\),*/g;
|
@@ -2564,6 +2564,7 @@ class V8CoverageProvider extends BaseCoverageProvider {
|
|
2564
2564
|
return libCoverage.createCoverageMap({});
|
2565
2565
|
}
|
2566
2566
|
async generateCoverage({ allTestsRun }) {
|
2567
|
+
const start = debug.enabled ? performance.now() : 0;
|
2567
2568
|
const coverageMap = this.createCoverageMap();
|
2568
2569
|
let merged = { result: [] };
|
2569
2570
|
await this.readCoverageFiles({
|
@@ -2592,6 +2593,9 @@ class V8CoverageProvider extends BaseCoverageProvider {
|
|
2592
2593
|
if (this.options.excludeAfterRemap) {
|
2593
2594
|
coverageMap.filter((filename) => this.testExclude.shouldInstrument(filename));
|
2594
2595
|
}
|
2596
|
+
if (debug.enabled) {
|
2597
|
+
debug(`Generate coverage total time ${(performance.now() - start).toFixed()} ms`);
|
2598
|
+
}
|
2595
2599
|
return coverageMap;
|
2596
2600
|
}
|
2597
2601
|
async generateReports(coverageMap, allTestsRun) {
|
@@ -2637,6 +2641,12 @@ class V8CoverageProvider extends BaseCoverageProvider {
|
|
2637
2641
|
debug("Uncovered files %d/%d", index, uncoveredFiles.length);
|
2638
2642
|
}
|
2639
2643
|
await Promise.all(chunk.map(async (filename) => {
|
2644
|
+
let timeout;
|
2645
|
+
let start;
|
2646
|
+
if (debug.enabled) {
|
2647
|
+
start = performance.now();
|
2648
|
+
timeout = setTimeout(() => debug(c.bgRed(`File "${filename.pathname}" is taking longer than 3s`)), 3e3);
|
2649
|
+
}
|
2640
2650
|
const sources = await this.getSources(filename.href, transformResults, transform);
|
2641
2651
|
const converter = v8ToIstanbul(filename.href, 0, sources, undefined, this.options.ignoreEmptyLines);
|
2642
2652
|
await converter.load();
|
@@ -2654,6 +2664,12 @@ class V8CoverageProvider extends BaseCoverageProvider {
|
|
2654
2664
|
this.ctx.logger.error(`Failed to convert coverage for uncovered ${filename.href}.\n`, error);
|
2655
2665
|
}
|
2656
2666
|
coverageMap.merge(converter.toIstanbul());
|
2667
|
+
if (debug.enabled) {
|
2668
|
+
clearTimeout(timeout);
|
2669
|
+
const diff = performance.now() - start;
|
2670
|
+
const color = diff > 500 ? c.bgRed : c.bgGreen;
|
2671
|
+
debug(`${color(` ${diff.toFixed()} ms `)} ${filename.pathname}`);
|
2672
|
+
}
|
2657
2673
|
}));
|
2658
2674
|
}
|
2659
2675
|
return coverageMap;
|
@@ -2733,6 +2749,12 @@ class V8CoverageProvider extends BaseCoverageProvider {
|
|
2733
2749
|
debug("Converting %d/%d", index, scriptCoverages.length);
|
2734
2750
|
}
|
2735
2751
|
await Promise.all(chunk.map(async ({ url, functions, startOffset }) => {
|
2752
|
+
let timeout;
|
2753
|
+
let start;
|
2754
|
+
if (debug.enabled) {
|
2755
|
+
start = performance.now();
|
2756
|
+
timeout = setTimeout(() => debug(c.bgRed(`File "${fileURLToPath(url)}" is taking longer than 3s`)), 3e3);
|
2757
|
+
}
|
2736
2758
|
const sources = await this.getSources(url, transformResults, onTransform, functions);
|
2737
2759
|
const converter = v8ToIstanbul(url, startOffset, sources, undefined, this.options.ignoreEmptyLines);
|
2738
2760
|
await converter.load();
|
@@ -2742,6 +2764,12 @@ class V8CoverageProvider extends BaseCoverageProvider {
|
|
2742
2764
|
this.ctx.logger.error(`Failed to convert coverage for ${url}.\n`, error);
|
2743
2765
|
}
|
2744
2766
|
coverageMap.merge(converter.toIstanbul());
|
2767
|
+
if (debug.enabled) {
|
2768
|
+
clearTimeout(timeout);
|
2769
|
+
const diff = performance.now() - start;
|
2770
|
+
const color = diff > 500 ? c.bgRed : c.bgGreen;
|
2771
|
+
debug(`${color(` ${diff.toFixed()} ms `)} ${fileURLToPath(url)}`);
|
2772
|
+
}
|
2745
2773
|
}));
|
2746
2774
|
}
|
2747
2775
|
return coverageMap;
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@vitest/coverage-v8",
|
3
3
|
"type": "module",
|
4
|
-
"version": "3.1.
|
4
|
+
"version": "3.1.2",
|
5
5
|
"description": "V8 coverage provider for Vitest",
|
6
6
|
"author": "Anthony Fu <anthonyfu117@hotmail.com>",
|
7
7
|
"license": "MIT",
|
@@ -41,8 +41,8 @@
|
|
41
41
|
"dist"
|
42
42
|
],
|
43
43
|
"peerDependencies": {
|
44
|
-
"@vitest/browser": "3.1.
|
45
|
-
"vitest": "3.1.
|
44
|
+
"@vitest/browser": "3.1.2",
|
45
|
+
"vitest": "3.1.2"
|
46
46
|
},
|
47
47
|
"peerDependenciesMeta": {
|
48
48
|
"@vitest/browser": {
|
@@ -59,7 +59,7 @@
|
|
59
59
|
"istanbul-reports": "^3.1.7",
|
60
60
|
"magic-string": "^0.30.17",
|
61
61
|
"magicast": "^0.3.5",
|
62
|
-
"std-env": "^3.
|
62
|
+
"std-env": "^3.9.0",
|
63
63
|
"test-exclude": "^7.0.1",
|
64
64
|
"tinyrainbow": "^2.0.0"
|
65
65
|
},
|
@@ -72,9 +72,9 @@
|
|
72
72
|
"@types/test-exclude": "^6.0.2",
|
73
73
|
"pathe": "^2.0.3",
|
74
74
|
"v8-to-istanbul": "^9.3.0",
|
75
|
-
"@vitest/browser": "3.1.
|
76
|
-
"
|
77
|
-
"
|
75
|
+
"@vitest/browser": "3.1.2",
|
76
|
+
"vitest": "3.1.2",
|
77
|
+
"vite-node": "3.1.2"
|
78
78
|
},
|
79
79
|
"scripts": {
|
80
80
|
"build": "rimraf dist && rollup -c",
|