From c010fc22b84224de2803724aeaff20bc083f5368 Mon Sep 17 00:00:00 2001 From: Vladimir Date: Thu, 15 Oct 2026 12:48:05 +0200 Subject: [PATCH] test: parallel screenshot instances, longer timeouts (#11603) --- test/browser/specs/readiness.test.ts | 2 +- test/browser/specs/to-match-screenshot.test.ts | 2 ++ test/coverage-test/test/changed.test.ts | 4 ++-- test/e2e/vitest.config.ts | 9 ++++++--- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/test/browser/specs/readiness.test.ts b/test/browser/specs/readiness.test.ts index 4fbf65ded..8ecdcdb91 100644 --- a/test/browser/specs/readiness.test.ts +++ b/test/browser/specs/readiness.test.ts @@ -3,7 +3,7 @@ import { instances, runInlineBrowserTests } from './utils' test( 'prepare waits until the tester can receive browser channel events', - { timeout: 5000 }, + { timeout: 30_000 }, async () => { const { stderr, testTree } = await runInlineBrowserTests( { diff --git a/test/browser/specs/to-match-screenshot.test.ts b/test/browser/specs/to-match-screenshot.test.ts index e3f974305..1db5df17f 100644 --- a/test/browser/specs/to-match-screenshot.test.ts +++ b/test/browser/specs/to-match-screenshot.test.ts @@ -43,6 +43,8 @@ async function runBrowserTests(structure: TestFsStructure, config: ViteUserConfi $cliOptions: { watch: true, }, + // every instance is a worker, the default of 1 would run them one by one + maxWorkers: instances.length, browser: { enabled: true, screenshotFailures: false, diff --git a/test/coverage-test/test/changed.test.ts b/test/coverage-test/test/changed.test.ts index 4484476fe..f263a3446 100755 --- a/test/coverage-test/test/changed.test.ts +++ b/test/coverage-test/test/changed.test.ts @@ -32,7 +32,7 @@ beforeAll(() => { } }) -test('{ changed: "HEAD" }', { skip: SKIP }, async () => { +test('{ changed: "HEAD" }', { skip: SKIP, timeout: 30_000 }, async () => { await runVitest({ include: ['fixtures/test/**'], exclude: ['**/custom-1-syntax**'], @@ -75,7 +75,7 @@ test('{ changed: "HEAD" }', { skip: SKIP }, async () => { `) }) -test('{ coverage.changed: "HEAD" }', async () => { +test('{ coverage.changed: "HEAD" }', { timeout: 30_000 }, async () => { await runVitest({ include: ['fixtures/test/file-to-change.test.ts', 'fixtures/test/math.test.ts'], coverage: { diff --git a/test/e2e/vitest.config.ts b/test/e2e/vitest.config.ts index e5da97208..218e06be6 100644 --- a/test/e2e/vitest.config.ts +++ b/test/e2e/vitest.config.ts @@ -2,6 +2,9 @@ import path from 'node:path' import { defineConfig } from 'vite' import { defaultExclude } from 'vitest/config' +// browser-mode tests launch a real browser, which takes twice as long on Windows +const testTimeout = process.platform === 'win32' ? 120_000 : 60_000 + // Tests that drive git `--changed` against committed fixtures and cannot // tolerate other tests mutating the working tree concurrently. Run in a serial // project. Tests that only need a watched directory use `runInlineTests` @@ -27,7 +30,7 @@ export default defineConfig({ return false } }, - tags: [{ name: 'browser', timeout: 60_000 }], + tags: [{ name: 'browser', timeout: testTimeout }], projects: [ { extends: true, @@ -36,7 +39,7 @@ export default defineConfig({ include: ['test/**/**.{test,spec}.ts'], exclude: [...defaultExclude, ...serialTests], includeTaskLocation: true, - testTimeout: 60_000, + testTimeout, isolate: false, fileParallelism: true, maxWorkers: Number(process.env.VITEST_E2E_MAX_WORKERS) || 2, @@ -79,7 +82,7 @@ export default defineConfig({ name: 'serial', include: serialTests, includeTaskLocation: true, - testTimeout: 60_000, + testTimeout, isolate: false, fileParallelism: false, sequence: { -- 2.54.0