From 2fcc08d2ca66bde47905bc93f5403fdfa5742e14 Mon Sep 17 00:00:00 2001 From: Joao Victor Lopes Date: Mon, 24 Feb 2025 22:02:25 -0300 Subject: [PATCH 1/2] wip: implementation tests --- packages/vitest/src/runtime/runners/index.ts | 2 ++ test/fake-test/package.json | 15 +++++++++++++++ test/fake-test/test/ab.test.ts | 7 +++++++ test/fake-test/vitest.config.js | 9 +++++++++ 4 files changed, 33 insertions(+) create mode 100644 test/fake-test/package.json create mode 100644 test/fake-test/test/ab.test.ts create mode 100644 test/fake-test/vitest.config.js diff --git a/packages/vitest/src/runtime/runners/index.ts b/packages/vitest/src/runtime/runners/index.ts index 8dcd019f963b..ccc3c8ab87f1 100644 --- a/packages/vitest/src/runtime/runners/index.ts +++ b/packages/vitest/src/runtime/runners/index.ts @@ -14,6 +14,7 @@ async function getTestRunnerConstructor( config: SerializedConfig, executor: VitestExecutor, ): Promise { + console.log('getTestRunnerConstructor') if (!config.runner) { const { VitestTestRunner, NodeBenchmarkRunner } = await executor.executeFile(runnersFile) @@ -36,6 +37,7 @@ export async function resolveTestRunner( config: SerializedConfig, executor: VitestExecutor, ): Promise { + console.log('resolveTestRunner') const TestRunner = await getTestRunnerConstructor(config, executor) const testRunner = new TestRunner(config) 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'], + + }, +}) From 6edffd8110b3cefde263eca521cbed3ffcabe236 Mon Sep 17 00:00:00 2001 From: Joao Victor Lopes Date: Thu, 27 Feb 2025 00:13:04 -0300 Subject: [PATCH 2/2] wip: repeats as cli command --- packages/vitest/src/defaults.ts | 2 ++ packages/vitest/src/node/cli/cli-config.ts | 4 ++++ packages/vitest/src/node/config/resolveConfig.ts | 2 ++ packages/vitest/src/node/types/config.ts | 7 +++++++ packages/vitest/src/runtime/runners/index.ts | 2 -- pnpm-lock.yaml | 6 ++++++ 6 files changed, 21 insertions(+), 2 deletions(-) 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/packages/vitest/src/runtime/runners/index.ts b/packages/vitest/src/runtime/runners/index.ts index ccc3c8ab87f1..8dcd019f963b 100644 --- a/packages/vitest/src/runtime/runners/index.ts +++ b/packages/vitest/src/runtime/runners/index.ts @@ -14,7 +14,6 @@ async function getTestRunnerConstructor( config: SerializedConfig, executor: VitestExecutor, ): Promise { - console.log('getTestRunnerConstructor') if (!config.runner) { const { VitestTestRunner, NodeBenchmarkRunner } = await executor.executeFile(runnersFile) @@ -37,7 +36,6 @@ export async function resolveTestRunner( config: SerializedConfig, executor: VitestExecutor, ): Promise { - console.log('resolveTestRunner') const TestRunner = await getTestRunnerConstructor(config, executor) const testRunner = new TestRunner(config) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bc16767094c3..bcad18f43a24 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: