From 0d1f1e87fee9ee532c234efe657e42918975a61d Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Thu, 28 Jul 2022 03:15:25 +0800 Subject: [PATCH] fix: improve execution time counter --- packages/vitest/src/node/reporters/base.ts | 8 +++++--- packages/vitest/src/runtime/collect.ts | 6 ++++-- packages/vitest/src/types/tasks.ts | 1 + 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/packages/vitest/src/node/reporters/base.ts b/packages/vitest/src/node/reporters/base.ts index 62a49f2b522d..56d972b847cc 100644 --- a/packages/vitest/src/node/reporters/base.ts +++ b/packages/vitest/src/node/reporters/base.ts @@ -209,7 +209,10 @@ export abstract class BaseReporter implements Reporter { } const executionTime = this.end - this.start - const threadTime = files.reduce((acc, test) => acc + Math.max(0, test.result?.duration || 0) + Math.max(0, test.collectDuration || 0), 0) + const collectTime = files.reduce((acc, test) => acc + Math.max(0, test.collectDuration || 0), 0) + const setupTime = files.reduce((acc, test) => acc + Math.max(0, test.setupDuration || 0), 0) + const testsTime = files.reduce((acc, test) => acc + Math.max(0, test.result?.duration || 0), 0) + const threadTime = collectTime + testsTime + setupTime const padTitle = (str: string) => c.dim(`${str.padStart(10)} `) const time = (time: number) => { @@ -232,9 +235,8 @@ export abstract class BaseReporter implements Reporter { logger.log(padTitle('Tests'), getStateString(tests)) if (this.watchFilters) logger.log(padTitle('Time'), time(threadTime)) - else - logger.log(padTitle('Time'), time(executionTime) + c.gray(` (in thread ${time(threadTime)}, ${(executionTime / threadTime * 100).toFixed(2)}%)`)) + logger.log(padTitle('Time'), time(executionTime) + c.gray(` (setup ${time(setupTime)}, collect ${time(collectTime)}, tests ${time(testsTime)})`)) logger.log() } diff --git a/packages/vitest/src/runtime/collect.ts b/packages/vitest/src/runtime/collect.ts index 1a09aff006e2..290db7826fb7 100644 --- a/packages/vitest/src/runtime/collect.ts +++ b/packages/vitest/src/runtime/collect.ts @@ -47,8 +47,11 @@ export async function collectTests(paths: string[], config: ResolvedConfig) { clearCollectorContext() try { + const setupStart = now() await runSetupFiles(config) + const collectStart = now() + file.setupDuration = collectStart - setupStart if (config.browser && isBrowser) await importFromBrowser(filepath) else @@ -66,13 +69,12 @@ export async function collectTests(paths: string[], config: ResolvedConfig) { file.tasks.push(c) } else { - const start = now() const suite = await c.collect(file) - file.collectDuration = now() - start if (suite.name || suite.tasks.length) file.tasks.push(suite) } } + file.collectDuration = now() - collectStart } catch (e) { file.result = { diff --git a/packages/vitest/src/types/tasks.ts b/packages/vitest/src/types/tasks.ts index 1f4c876288aa..ef3ecafb108a 100644 --- a/packages/vitest/src/types/tasks.ts +++ b/packages/vitest/src/types/tasks.ts @@ -38,6 +38,7 @@ export interface Suite extends TaskBase { export interface File extends Suite { filepath: string collectDuration?: number + setupDuration?: number } export interface Test extends TaskBase {