diff --git a/packages/vitest/src/node/ast-collect.ts b/packages/vitest/src/node/ast-collect.ts index a1f4518a8ce3..7ea1b2c94479 100644 --- a/packages/vitest/src/node/ast-collect.ts +++ b/packages/vitest/src/node/ast-collect.ts @@ -130,7 +130,7 @@ function astParseFile(filepath: string, code: string) { const property = callee?.property?.name let mode = !property || property === name ? 'run' : property // they will be picked up in the next iteration - if (['each', 'for', 'skipIf', 'runIf', 'extend', 'scoped'].includes(mode)) { + if (['each', 'for', 'skipIf', 'runIf', 'extend', 'scoped', 'override'].includes(mode)) { return } diff --git a/test/cli/test/static-collect.test.ts b/test/cli/test/static-collect.test.ts index 9c291be82605..12eb886b3253 100644 --- a/test/cli/test/static-collect.test.ts +++ b/test/cli/test/static-collect.test.ts @@ -286,6 +286,57 @@ test('collects nested suites with custom test functions', async () => { `) }) +test('ignores test.scoped and test.override', async () => { + const testModule = await collectTests(` + import { test as base } from 'vitest' + + const test = base.extend({ + fixture: async ({}, use) => { + await use('value') + }, + }) + + test.scoped({ fixture: 'value' }) + test.override({ fixture: 'value' }) + + describe('extended tests', () => { + test('uses extended test', () => {}) + test.skip('skips extended test', () => {}) + test.only('only extended test', () => {}) + }) +`) + expect(testModule).toMatchInlineSnapshot(` + { + "extended tests": { + "only extended test": { + "errors": [], + "fullName": "extended tests > only extended test", + "id": "-1732721377_0_2", + "location": "16:6", + "mode": "run", + "state": "pending", + }, + "skips extended test": { + "errors": [], + "fullName": "extended tests > skips extended test", + "id": "-1732721377_0_1", + "location": "15:6", + "mode": "skip", + "state": "skipped", + }, + "uses extended test": { + "errors": [], + "fullName": "extended tests > uses extended test", + "id": "-1732721377_0_0", + "location": "14:6", + "mode": "skip", + "state": "skipped", + }, + }, + } + `) +}) + test('collects tests from test.extend', async () => { const testModule = await collectTests(` import { test as base } from 'vitest'