From 53606e228debf8b8e17e39155a65b4b4bf2096bf Mon Sep 17 00:00:00 2001 From: yoho Date: Tue, 1 Nov 2022 01:37:19 +0800 Subject: [PATCH 1/9] test: load deps reporter --- test/reporters/deps-reporter.vitest.config.ts | 8 ++++++++ test/reporters/package.json | 3 ++- test/reporters/reportPkg/index.js | 9 +++++++++ test/reporters/reportPkg/package.json | 4 ++++ test/reporters/tests/custom-reporter.spec.ts | 5 +++++ 5 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 test/reporters/deps-reporter.vitest.config.ts create mode 100644 test/reporters/reportPkg/index.js create mode 100644 test/reporters/reportPkg/package.json diff --git a/test/reporters/deps-reporter.vitest.config.ts b/test/reporters/deps-reporter.vitest.config.ts new file mode 100644 index 000000000000..bc433997271b --- /dev/null +++ b/test/reporters/deps-reporter.vitest.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from 'vitest/config' + +export default defineConfig({ + test: { + include: ['tests/reporters.spec.ts'], + reporters: ['pkg-reporter'], + }, +}) diff --git a/test/reporters/package.json b/test/reporters/package.json index ef56ccdab942..28b80ed05695 100644 --- a/test/reporters/package.json +++ b/test/reporters/package.json @@ -6,6 +6,7 @@ }, "devDependencies": { "execa": "^6.1.0", - "vitest": "workspace:*" + "vitest": "workspace:*", + "pkg-reporter": "./reportPkg/" } } diff --git a/test/reporters/reportPkg/index.js b/test/reporters/reportPkg/index.js new file mode 100644 index 000000000000..1f3c597a66d4 --- /dev/null +++ b/test/reporters/reportPkg/index.js @@ -0,0 +1,9 @@ +export default class PackageReporter { + onInit(ctx) { + this.ctx = ctx + } + + onFinished() { + this.ctx.logger.log('hello from package reporter') + } +} diff --git a/test/reporters/reportPkg/package.json b/test/reporters/reportPkg/package.json new file mode 100644 index 000000000000..498f05b5be6b --- /dev/null +++ b/test/reporters/reportPkg/package.json @@ -0,0 +1,4 @@ +{ + "name": "pkg-reporter", + "main": "./index.js" +} diff --git a/test/reporters/tests/custom-reporter.spec.ts b/test/reporters/tests/custom-reporter.spec.ts index 42b9554a67aa..9560d8051acf 100644 --- a/test/reporters/tests/custom-reporter.spec.ts +++ b/test/reporters/tests/custom-reporter.spec.ts @@ -45,6 +45,11 @@ describe.concurrent('custom reporters', () => { expect(stdout).includes('hello from custom reporter') }, 40000) + test('package.json dependencies reporter instances defined in configuration works', async () => { + const stdout = await runWithRetry('--config', 'deps-reporter.vitest.config.ts') + expect(stdout).includes('hello from package reporter') + }, 40000) + test('a path to a custom reporter defined in configuration works', async () => { const stdout = await runWithRetry('--config', 'custom-reporter-path.vitest.config.ts', '--reporter', customJSReporterPath) expect(stdout).includes('hello from custom reporter') From f20b74503abbea03ed1199a4709da978b6a8d3b8 Mon Sep 17 00:00:00 2001 From: yoho Date: Tue, 1 Nov 2022 01:39:54 +0800 Subject: [PATCH 2/9] chore: update --- pnpm-lock.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b46db0d45f61..9e8d93bf0e45 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1056,9 +1056,11 @@ importers: test/reporters: specifiers: execa: ^6.1.0 + pkg-reporter: ./reportPkg/ vitest: workspace:* devDependencies: execa: 6.1.0 + pkg-reporter: link:reportPkg vitest: link:../../packages/vitest test/resolve: From 5f110f08ee10200c8e12c7caa5fd9f3552246d56 Mon Sep 17 00:00:00 2001 From: yoho Date: Tue, 1 Nov 2022 01:44:09 +0800 Subject: [PATCH 3/9] fix: lint --- test/reporters/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/reporters/package.json b/test/reporters/package.json index 28b80ed05695..8403bc3468ea 100644 --- a/test/reporters/package.json +++ b/test/reporters/package.json @@ -6,7 +6,7 @@ }, "devDependencies": { "execa": "^6.1.0", - "vitest": "workspace:*", - "pkg-reporter": "./reportPkg/" + "pkg-reporter": "./reportPkg/", + "vitest": "workspace:*" } } From 97972d7916d35b143f350ae0189ea143cfceb416 Mon Sep 17 00:00:00 2001 From: yoho Date: Tue, 1 Nov 2022 01:59:42 +0800 Subject: [PATCH 4/9] feat: more timeout --- test/reporters/tests/custom-reporter.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/reporters/tests/custom-reporter.spec.ts b/test/reporters/tests/custom-reporter.spec.ts index 9560d8051acf..03c9816b5738 100644 --- a/test/reporters/tests/custom-reporter.spec.ts +++ b/test/reporters/tests/custom-reporter.spec.ts @@ -48,7 +48,7 @@ describe.concurrent('custom reporters', () => { test('package.json dependencies reporter instances defined in configuration works', async () => { const stdout = await runWithRetry('--config', 'deps-reporter.vitest.config.ts') expect(stdout).includes('hello from package reporter') - }, 40000) + }, 80000) test('a path to a custom reporter defined in configuration works', async () => { const stdout = await runWithRetry('--config', 'custom-reporter-path.vitest.config.ts', '--reporter', customJSReporterPath) From f8021c9276fde33dfc3fddd42cc66556fbf7c64b Mon Sep 17 00:00:00 2001 From: yoho Date: Tue, 1 Nov 2022 12:58:39 +0800 Subject: [PATCH 5/9] feat: absolute path will executeId --- packages/vitest/src/node/reporters/utils.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/vitest/src/node/reporters/utils.ts b/packages/vitest/src/node/reporters/utils.ts index ed7e433d400d..a38a7c422017 100644 --- a/packages/vitest/src/node/reporters/utils.ts +++ b/packages/vitest/src/node/reporters/utils.ts @@ -1,4 +1,5 @@ import type { ViteNodeRunner } from 'vite-node/client' +import { isAbsolute } from 'pathe' import type { Reporter } from '../../types' import { BenchmarkReportsMap, ReportersMap } from './index' import type { BenchmarkBuiltinReporters, BuiltinReporters } from './index' @@ -6,7 +7,10 @@ import type { BenchmarkBuiltinReporters, BuiltinReporters } from './index' async function loadCustomReporterModule(path: string, runner: ViteNodeRunner): Promise C> { let customReporterModule: { default: new () => C } try { - customReporterModule = await runner.executeFile(path) + if (isAbsolute(path)) + customReporterModule = await runner.executeFile(path) + else + customReporterModule = await runner.executeId(path) } catch (customReporterModuleError) { throw new Error(`Failed to load custom Reporter from ${path}`, { cause: customReporterModuleError as Error }) From 51765a3bf783058ed8beac2ecf68ed8e55e6ddcf Mon Sep 17 00:00:00 2001 From: yoho Date: Tue, 1 Nov 2022 13:18:57 +0800 Subject: [PATCH 6/9] chore: update --- test/reporters/tests/custom-reporter.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/reporters/tests/custom-reporter.spec.ts b/test/reporters/tests/custom-reporter.spec.ts index 03c9816b5738..cfa34c09aecb 100644 --- a/test/reporters/tests/custom-reporter.spec.ts +++ b/test/reporters/tests/custom-reporter.spec.ts @@ -48,7 +48,7 @@ describe.concurrent('custom reporters', () => { test('package.json dependencies reporter instances defined in configuration works', async () => { const stdout = await runWithRetry('--config', 'deps-reporter.vitest.config.ts') expect(stdout).includes('hello from package reporter') - }, 80000) + }, 50000) test('a path to a custom reporter defined in configuration works', async () => { const stdout = await runWithRetry('--config', 'custom-reporter-path.vitest.config.ts', '--reporter', customJSReporterPath) From ea6b8bc11302f0f1d1cd692530ff60b185e7c33d Mon Sep 17 00:00:00 2001 From: yoho Date: Tue, 1 Nov 2022 14:10:08 +0800 Subject: [PATCH 7/9] chore: update --- test/reporters/tests/custom-reporter.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/reporters/tests/custom-reporter.spec.ts b/test/reporters/tests/custom-reporter.spec.ts index cfa34c09aecb..9560d8051acf 100644 --- a/test/reporters/tests/custom-reporter.spec.ts +++ b/test/reporters/tests/custom-reporter.spec.ts @@ -48,7 +48,7 @@ describe.concurrent('custom reporters', () => { test('package.json dependencies reporter instances defined in configuration works', async () => { const stdout = await runWithRetry('--config', 'deps-reporter.vitest.config.ts') expect(stdout).includes('hello from package reporter') - }, 50000) + }, 40000) test('a path to a custom reporter defined in configuration works', async () => { const stdout = await runWithRetry('--config', 'custom-reporter-path.vitest.config.ts', '--reporter', customJSReporterPath) From fbd5600e64d35f059f7c687b96c27fb0f0da2192 Mon Sep 17 00:00:00 2001 From: yoho Date: Wed, 2 Nov 2022 00:24:31 +0800 Subject: [PATCH 8/9] test: load report no base on root --- packages/vitest/src/node/reporters/utils.ts | 6 +----- .../custom-reporter-path.vitest.config.ts | 13 +++++++++++++ test/reporters/tests/custom-reporter.spec.ts | 5 +++++ test/reporters/tests/utils.test.ts | 2 +- 4 files changed, 20 insertions(+), 6 deletions(-) create mode 100644 test/reporters/reportTest2/custom-reporter-path.vitest.config.ts diff --git a/packages/vitest/src/node/reporters/utils.ts b/packages/vitest/src/node/reporters/utils.ts index a38a7c422017..aad3aa695c88 100644 --- a/packages/vitest/src/node/reporters/utils.ts +++ b/packages/vitest/src/node/reporters/utils.ts @@ -1,5 +1,4 @@ import type { ViteNodeRunner } from 'vite-node/client' -import { isAbsolute } from 'pathe' import type { Reporter } from '../../types' import { BenchmarkReportsMap, ReportersMap } from './index' import type { BenchmarkBuiltinReporters, BuiltinReporters } from './index' @@ -7,10 +6,7 @@ import type { BenchmarkBuiltinReporters, BuiltinReporters } from './index' async function loadCustomReporterModule(path: string, runner: ViteNodeRunner): Promise C> { let customReporterModule: { default: new () => C } try { - if (isAbsolute(path)) - customReporterModule = await runner.executeFile(path) - else - customReporterModule = await runner.executeId(path) + customReporterModule = await runner.executeId(path) } catch (customReporterModuleError) { throw new Error(`Failed to load custom Reporter from ${path}`, { cause: customReporterModuleError as Error }) diff --git a/test/reporters/reportTest2/custom-reporter-path.vitest.config.ts b/test/reporters/reportTest2/custom-reporter-path.vitest.config.ts new file mode 100644 index 000000000000..d7a8d4ac855a --- /dev/null +++ b/test/reporters/reportTest2/custom-reporter-path.vitest.config.ts @@ -0,0 +1,13 @@ +import { resolve } from 'pathe' +import { defineConfig } from 'vitest/config' + +const customReporter = resolve(__dirname, '../src/custom-reporter.ts') + +export default defineConfig({ + root: __dirname, + test: { + root: __dirname, + include: ['../tests/reporters.spec.ts'], + reporters: [customReporter], + }, +}) diff --git a/test/reporters/tests/custom-reporter.spec.ts b/test/reporters/tests/custom-reporter.spec.ts index 9560d8051acf..0dfdb6097189 100644 --- a/test/reporters/tests/custom-reporter.spec.ts +++ b/test/reporters/tests/custom-reporter.spec.ts @@ -45,6 +45,11 @@ describe.concurrent('custom reporters', () => { expect(stdout).includes('hello from custom reporter') }, 40000) + test('load no base on root custom reporter instances defined in configuration works', async () => { + const stdout = await runWithRetry('--config', './reportTest2/custom-reporter-path.vitest.config.ts') + expect(stdout).includes('hello from custom reporter') + }, 40000) + test('package.json dependencies reporter instances defined in configuration works', async () => { const stdout = await runWithRetry('--config', 'deps-reporter.vitest.config.ts') expect(stdout).includes('hello from package reporter') diff --git a/test/reporters/tests/utils.test.ts b/test/reporters/tests/utils.test.ts index e41b71ca62fc..24aa83510f4d 100644 --- a/test/reporters/tests/utils.test.ts +++ b/test/reporters/tests/utils.test.ts @@ -10,7 +10,7 @@ import TestReporter from '../src/custom-reporter' const customReporterPath = resolve(__dirname, '../src/custom-reporter.js') const fetchModule = { - executeFile: (id: string) => import(id), + executeId: (id: string) => import(id), } as ViteNodeRunner describe('Reporter Utils', () => { From decdbac5cf2b7ebf69e1ce98bee58d549468960c Mon Sep 17 00:00:00 2001 From: yoho Date: Wed, 2 Nov 2022 00:33:07 +0800 Subject: [PATCH 9/9] chore: update --- test/reporters/tests/custom-reporter.spec.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/reporters/tests/custom-reporter.spec.ts b/test/reporters/tests/custom-reporter.spec.ts index 0dfdb6097189..624bdd4451c2 100644 --- a/test/reporters/tests/custom-reporter.spec.ts +++ b/test/reporters/tests/custom-reporter.spec.ts @@ -48,12 +48,12 @@ describe.concurrent('custom reporters', () => { test('load no base on root custom reporter instances defined in configuration works', async () => { const stdout = await runWithRetry('--config', './reportTest2/custom-reporter-path.vitest.config.ts') expect(stdout).includes('hello from custom reporter') - }, 40000) + }, 50000) test('package.json dependencies reporter instances defined in configuration works', async () => { const stdout = await runWithRetry('--config', 'deps-reporter.vitest.config.ts') expect(stdout).includes('hello from package reporter') - }, 40000) + }, 50000) test('a path to a custom reporter defined in configuration works', async () => { const stdout = await runWithRetry('--config', 'custom-reporter-path.vitest.config.ts', '--reporter', customJSReporterPath)