diff --git a/packages/vitest/src/defaults.ts b/packages/vitest/src/defaults.ts index 1206405ddcfa..4a7ab7a4e844 100644 --- a/packages/vitest/src/defaults.ts +++ b/packages/vitest/src/defaults.ts @@ -128,6 +128,7 @@ export const configDefaults: Readonly<{ } slowTestThreshold: number disableConsoleIntercept: boolean + repeats: number }> = Object.freeze({ allowOnly: !isCI, isolate: true, @@ -166,4 +167,5 @@ export const configDefaults: Readonly<{ }, slowTestThreshold: 300, disableConsoleIntercept: false, + repeats: 0, }) diff --git a/packages/vitest/src/node/cli/cli-config.ts b/packages/vitest/src/node/cli/cli-config.ts index f61d7255163b..c00dd9a11d04 100644 --- a/packages/vitest/src/node/cli/cli-config.ts +++ b/packages/vitest/src/node/cli/cli-config.ts @@ -714,6 +714,10 @@ export const cliOptionsConfig: VitestCLIOptions = { 'Threshold in milliseconds for a test or suite to be considered slow (default: `300`)', argument: '', }, + repeats: { + description: 'Number of times to repeat each test', + argument: '', + }, teardownTimeout: { description: 'Default timeout of a teardown function in milliseconds (default: `10000`)', diff --git a/packages/vitest/src/node/config/resolveConfig.ts b/packages/vitest/src/node/config/resolveConfig.ts index 804f16591e4d..159c8288903d 100644 --- a/packages/vitest/src/node/config/resolveConfig.ts +++ b/packages/vitest/src/node/config/resolveConfig.ts @@ -142,6 +142,8 @@ export function resolveConfig( mode, } as any as ResolvedConfig + console.log('resolved', resolved) + resolved.project = toArray(resolved.project) resolved.provide ??= {} diff --git a/packages/vitest/src/node/types/config.ts b/packages/vitest/src/node/types/config.ts index 154bc9c66417..5038f27b4bf8 100644 --- a/packages/vitest/src/node/types/config.ts +++ b/packages/vitest/src/node/types/config.ts @@ -700,6 +700,13 @@ export interface InlineConfig { */ slowTestThreshold?: number + /** + * Number of times to repeat the tests. + * @default 0 + * + */ + repeats?: number + /** * Path to a custom test runner. */ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f3b91818b8b0..aa6537db887f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1295,6 +1295,12 @@ importers: specifier: workspace:* version: link:../../packages/vitest + test/fake-test: + devDependencies: + vitest: + specifier: workspace:* + version: link:../../packages/vitest + test/global-setup: devDependencies: vitest: diff --git a/test/fake-test/package.json b/test/fake-test/package.json new file mode 100644 index 000000000000..af1680b7e9b1 --- /dev/null +++ b/test/fake-test/package.json @@ -0,0 +1,15 @@ +{ + "name": "fake-test", + "version": "1.0.0", + "description": "A fake test package", + "author": "Joao Lopes", + "license": "ISC", + "keywords": [], + "main": "index.js", + "scripts": { + "test": "vitest" + }, + "devDependencies": { + "vitest": "workspace:*" + } +} diff --git a/test/fake-test/test/ab.test.ts b/test/fake-test/test/ab.test.ts new file mode 100644 index 000000000000..8f1be767643d --- /dev/null +++ b/test/fake-test/test/ab.test.ts @@ -0,0 +1,7 @@ +import { describe, expect, it } from 'vitest' + +describe('Simple Math Test', () => { + it('should return 2 when adding 1 + 1', () => { + expect(1 + 1).toBe(2) + }) +}) diff --git a/test/fake-test/vitest.config.js b/test/fake-test/vitest.config.js new file mode 100644 index 000000000000..0b79bcf5ffcc --- /dev/null +++ b/test/fake-test/vitest.config.js @@ -0,0 +1,9 @@ +import { defineConfig } from 'vitest/config' + +export default defineConfig({ + test: { + environment: 'node', + files: ['test/**/*.test.ts'], + + }, +})