Skip to content

Commit 493e60e

Browse files
committed
fix(@angular/build): favor istanbul coverage provider when browser testing is enabled
When browser testing is enabled (`browsers` option configured), using V8 coverage in Chromium requires fetching and remapping source maps over CDP/HTTP for every script loaded in the browser window, causing multi-minute delays during report generation on large projects. This change updates `determineCoverageProvider` to favor `@vitest/coverage-istanbul` when browser mode is active and `@vitest/coverage-istanbul` is installed in `node_modules`. Istanbul instruments code at build time, allowing instant coverage extraction from `window.__coverage__` without CDP sourcemap resolution overhead. Explicit `coverage.provider` settings in user configuration remain fully respected. Relates to #31724
1 parent 10dc30f commit 493e60e

1 file changed

Lines changed: 4 additions & 1 deletion

File tree

  • packages/angular/build/src/builders/unit-test/runners/vitest

packages/angular/build/src/builders/unit-test/runners/vitest/plugins.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,10 @@ function determineCoverageProvider(
102102
const hasIstanbul = checkInstalled('@vitest/coverage-istanbul');
103103
const hasV8 = checkInstalled('@vitest/coverage-v8');
104104

105-
if (hasIstanbul && !hasV8) {
105+
// Favor istanbul when browser testing is enabled to avoid slow CDP V8 HTTP sourcemap remapping.
106+
if (browsersToCheck.length > 0 && hasIstanbul) {
107+
determinedProvider = 'istanbul';
108+
} else if (hasIstanbul && !hasV8) {
106109
determinedProvider = 'istanbul';
107110
} else {
108111
determinedProvider = 'v8';

0 commit comments

Comments
 (0)