From 40aaebc27ccdb4e2d171ac268afcf071f9cc9092 Mon Sep 17 00:00:00 2001 From: Blake Kostner Date: Wed, 15 Feb 2023 16:58:20 -0700 Subject: [PATCH 1/6] feat: add test seed to banner --- packages/vitest/src/node/logger.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/vitest/src/node/logger.ts b/packages/vitest/src/node/logger.ts index 9c2d2eae3264..6ee70f823ee0 100644 --- a/packages/vitest/src/node/logger.ts +++ b/packages/vitest/src/node/logger.ts @@ -102,8 +102,11 @@ export class Logger { const mode = this.ctx.config.watch ? c.blue(' DEV ') : c.cyan(' RUN ') + const seedText = this.ctx.config.sequence.seed != null + ? c.dim(`seed ${this.ctx.config.sequence.seed}`) + : '' - this.log(`${c.inverse(c.bold(mode))} ${versionTest} ${c.gray(this.ctx.config.root)}`) + this.log(`${c.inverse(c.bold(mode))} ${versionTest} ${c.gray(this.ctx.config.root)} ${seedText}`.trim()) if (this.ctx.config.browser) this.log(c.dim(c.green(` Browser runner started at http://${this.ctx.config.api?.host || 'localhost'}:${c.bold(`${this.ctx.server.config.server.port}`)}`))) From ac4de8390ade32335719e43e47c7cfd9fbca7ed7 Mon Sep 17 00:00:00 2001 From: Blake Kostner Date: Wed, 15 Feb 2023 17:20:33 -0700 Subject: [PATCH 2/6] move seed to a new line --- packages/vitest/src/node/logger.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/vitest/src/node/logger.ts b/packages/vitest/src/node/logger.ts index 6ee70f823ee0..f9212da27215 100644 --- a/packages/vitest/src/node/logger.ts +++ b/packages/vitest/src/node/logger.ts @@ -106,7 +106,10 @@ export class Logger { ? c.dim(`seed ${this.ctx.config.sequence.seed}`) : '' - this.log(`${c.inverse(c.bold(mode))} ${versionTest} ${c.gray(this.ctx.config.root)} ${seedText}`.trim()) + this.log(`${c.inverse(c.bold(mode))} ${versionTest} ${c.gray(this.ctx.config.root)}`) + + if (this.ctx.config.sequence.seed) + this.log(c.gray(` Running tests with seed "${this.ctx.config.sequence.seed}"`)) if (this.ctx.config.browser) this.log(c.dim(c.green(` Browser runner started at http://${this.ctx.config.api?.host || 'localhost'}:${c.bold(`${this.ctx.server.config.server.port}`)}`))) From 27b026a6ca4370f51ccc128f8aa0bf8fbad8a53e Mon Sep 17 00:00:00 2001 From: Blake Kostner Date: Wed, 15 Feb 2023 17:22:28 -0700 Subject: [PATCH 3/6] remove unused var --- packages/vitest/src/node/logger.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/vitest/src/node/logger.ts b/packages/vitest/src/node/logger.ts index f9212da27215..922158bf0f2a 100644 --- a/packages/vitest/src/node/logger.ts +++ b/packages/vitest/src/node/logger.ts @@ -102,9 +102,6 @@ export class Logger { const mode = this.ctx.config.watch ? c.blue(' DEV ') : c.cyan(' RUN ') - const seedText = this.ctx.config.sequence.seed != null - ? c.dim(`seed ${this.ctx.config.sequence.seed}`) - : '' this.log(`${c.inverse(c.bold(mode))} ${versionTest} ${c.gray(this.ctx.config.root)}`) From 75846ad061a6075b48841922ee48a1538f8575ef Mon Sep 17 00:00:00 2001 From: Blake Kostner Date: Thu, 16 Feb 2023 10:15:29 -0700 Subject: [PATCH 4/6] make the seed more deterministic --- packages/runner/src/types/runner.ts | 2 +- packages/vitest/src/node/config.ts | 1 + packages/vitest/src/node/logger.ts | 4 +--- packages/vitest/src/node/sequencers/RandomSequencer.ts | 4 +--- packages/vitest/src/types/config.ts | 2 +- 5 files changed, 5 insertions(+), 8 deletions(-) diff --git a/packages/runner/src/types/runner.ts b/packages/runner/src/types/runner.ts index 2892ff6b79ad..8ba40c29abb8 100644 --- a/packages/runner/src/types/runner.ts +++ b/packages/runner/src/types/runner.ts @@ -9,7 +9,7 @@ export interface VitestRunnerConfig { allowOnly?: boolean sequence: { shuffle?: boolean - seed?: number + seed: number hooks: SequenceHooks } maxConcurrency: number diff --git a/packages/vitest/src/node/config.ts b/packages/vitest/src/node/config.ts index a2f2cf12c333..6f2cd504079b 100644 --- a/packages/vitest/src/node/config.ts +++ b/packages/vitest/src/node/config.ts @@ -230,6 +230,7 @@ export function resolveConfig( ? RandomSequencer : BaseSequencer } + resolved.sequence.seed ??= Date.now() resolved.sequence.hooks ??= 'parallel' resolved.typecheck = { diff --git a/packages/vitest/src/node/logger.ts b/packages/vitest/src/node/logger.ts index 922158bf0f2a..b3598ab054e2 100644 --- a/packages/vitest/src/node/logger.ts +++ b/packages/vitest/src/node/logger.ts @@ -104,9 +104,7 @@ export class Logger { : c.cyan(' RUN ') this.log(`${c.inverse(c.bold(mode))} ${versionTest} ${c.gray(this.ctx.config.root)}`) - - if (this.ctx.config.sequence.seed) - this.log(c.gray(` Running tests with seed "${this.ctx.config.sequence.seed}"`)) + this.log(c.gray(` Running tests with seed "${this.ctx.config.sequence.seed}"`)) if (this.ctx.config.browser) this.log(c.dim(c.green(` Browser runner started at http://${this.ctx.config.api?.host || 'localhost'}:${c.bold(`${this.ctx.server.config.server.port}`)}`))) diff --git a/packages/vitest/src/node/sequencers/RandomSequencer.ts b/packages/vitest/src/node/sequencers/RandomSequencer.ts index d6edc463813e..d3b3bd1d54d0 100644 --- a/packages/vitest/src/node/sequencers/RandomSequencer.ts +++ b/packages/vitest/src/node/sequencers/RandomSequencer.ts @@ -5,8 +5,6 @@ export class RandomSequencer extends BaseSequencer { public async sort(files: string[]) { const { sequence } = this.ctx.config - const seed = sequence?.seed ?? Date.now() - - return shuffle(files, seed) + return shuffle(files, sequence.seed) } } diff --git a/packages/vitest/src/types/config.ts b/packages/vitest/src/types/config.ts index b01c587e6ba6..d49e4e27d9b4 100644 --- a/packages/vitest/src/types/config.ts +++ b/packages/vitest/src/types/config.ts @@ -636,7 +636,7 @@ export interface ResolvedConfig extends Omit, 'config' | 'f sequencer: TestSequencerConstructor hooks: SequenceHooks shuffle?: boolean - seed?: number + seed: number } typecheck: TypecheckConfig From a5c305f3f3425cc47d0cbce9d0c7717500311825 Mon Sep 17 00:00:00 2001 From: Blake Kostner Date: Fri, 17 Feb 2023 12:09:18 -0700 Subject: [PATCH 5/6] move seed generation and update logger --- packages/vitest/src/node/config.ts | 1 - packages/vitest/src/node/core.ts | 1 + packages/vitest/src/node/logger.ts | 5 ++++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/vitest/src/node/config.ts b/packages/vitest/src/node/config.ts index 6f2cd504079b..a2f2cf12c333 100644 --- a/packages/vitest/src/node/config.ts +++ b/packages/vitest/src/node/config.ts @@ -230,7 +230,6 @@ export function resolveConfig( ? RandomSequencer : BaseSequencer } - resolved.sequence.seed ??= Date.now() resolved.sequence.hooks ??= 'parallel' resolved.typecheck = { diff --git a/packages/vitest/src/node/core.ts b/packages/vitest/src/node/core.ts index 2dd8e1e6f9f2..3db785d0b5c2 100644 --- a/packages/vitest/src/node/core.ts +++ b/packages/vitest/src/node/core.ts @@ -143,6 +143,7 @@ export class Vitest { onConsoleLog: undefined!, sequence: { ...this.config.sequence, + seed: this.config.sequence.seed || Date.now(), sequencer: undefined!, }, benchmark: { diff --git a/packages/vitest/src/node/logger.ts b/packages/vitest/src/node/logger.ts index b3598ab054e2..7897002509f2 100644 --- a/packages/vitest/src/node/logger.ts +++ b/packages/vitest/src/node/logger.ts @@ -4,6 +4,7 @@ import { version } from '../../../../package.json' import type { ErrorWithDiff } from '../types' import type { TypeCheckError } from '../typecheck/typechecker' import { divider } from './reporters/renderers/utils' +import { RandomSequencer } from './sequencers/RandomSequencer' import type { Vitest } from './core' import { printError } from './error' @@ -104,7 +105,9 @@ export class Logger { : c.cyan(' RUN ') this.log(`${c.inverse(c.bold(mode))} ${versionTest} ${c.gray(this.ctx.config.root)}`) - this.log(c.gray(` Running tests with seed "${this.ctx.config.sequence.seed}"`)) + + if (this.ctx.config.sequence.sequencer === RandomSequencer) + this.log(c.gray(` Running tests with seed "${this.ctx.config.sequence.seed}"`)) if (this.ctx.config.browser) this.log(c.dim(c.green(` Browser runner started at http://${this.ctx.config.api?.host || 'localhost'}:${c.bold(`${this.ctx.server.config.server.port}`)}`))) From f8b26201d0620e9c2386e1372840ca232948c8ca Mon Sep 17 00:00:00 2001 From: Vladimir Sheremet Date: Tue, 21 Feb 2023 18:10:31 +0100 Subject: [PATCH 6/6] revert: set seed when the config is resolved --- packages/vitest/src/node/config.ts | 2 ++ packages/vitest/src/node/core.ts | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/vitest/src/node/config.ts b/packages/vitest/src/node/config.ts index a2f2cf12c333..5548b5dcbde8 100644 --- a/packages/vitest/src/node/config.ts +++ b/packages/vitest/src/node/config.ts @@ -231,6 +231,8 @@ export function resolveConfig( : BaseSequencer } resolved.sequence.hooks ??= 'parallel' + if (resolved.sequence.sequencer === RandomSequencer) + resolved.sequence.seed ??= Date.now() resolved.typecheck = { ...configDefaults.typecheck, diff --git a/packages/vitest/src/node/core.ts b/packages/vitest/src/node/core.ts index 3db785d0b5c2..2dd8e1e6f9f2 100644 --- a/packages/vitest/src/node/core.ts +++ b/packages/vitest/src/node/core.ts @@ -143,7 +143,6 @@ export class Vitest { onConsoleLog: undefined!, sequence: { ...this.config.sequence, - seed: this.config.sequence.seed || Date.now(), sequencer: undefined!, }, benchmark: {