diff --git a/packages/runner/src/fixture.ts b/packages/runner/src/fixture.ts index becd8dc0f318..2a710dcda4c7 100644 --- a/packages/runner/src/fixture.ts +++ b/packages/runner/src/fixture.ts @@ -74,6 +74,10 @@ export function withFixtures(fn: Function, testContext?: TestContext) { const usedFixtures = fixtures.filter(({ prop }) => usedProps.includes(prop)) const pendingFixtures = resolveDeps(usedFixtures) + + if (!pendingFixtures.length) + return fn(context) + let cursor = 0 return new Promise((resolve, reject) => { diff --git a/test/core/test/fixture-initialization.test.ts b/test/core/test/fixture-initialization.test.ts index 820ba6f454f7..42f7d1098e22 100644 --- a/test/core/test/fixture-initialization.test.ts +++ b/test/core/test/fixture-initialization.test.ts @@ -1,5 +1,5 @@ import type { Use } from '@vitest/runner' -import { describe, expect, expectTypeOf, test, vi } from 'vitest' +import { beforeEach, describe, expect, expectTypeOf, test, vi } from 'vitest' interface Fixtures { a: number @@ -179,4 +179,16 @@ describe('fixture initialization', () => { expect(archive.length).toBe(1) }) }) + + describe('accessing non-fixture context', () => { + const myTest = test.extend({ a: 1 }) + + beforeEach(async ({ task }) => { + expect(task).toBeTruthy() + }) + + myTest('non-fixture context can be accessed without accessing fixtures', ({ task }) => { + expect(task).toBeTruthy() + }) + }) })