From 113d564e781ac23d7baad1f98551f621be1c7121 Mon Sep 17 00:00:00 2001 From: yoho Date: Wed, 2 Nov 2022 01:50:20 +0800 Subject: [PATCH] fix: load deps reporter (#2249) * test: load deps reporter * chore: update * fix: lint * feat: more timeout * feat: absolute path will executeId * chore: update * chore: update * test: load report no base on root * chore: update --- packages/vitest/src/node/reporters/utils.ts | 2 +- pnpm-lock.yaml | 2 ++ test/reporters/deps-reporter.vitest.config.ts | 8 ++++++++ test/reporters/package.json | 1 + test/reporters/reportPkg/index.js | 9 +++++++++ test/reporters/reportPkg/package.json | 4 ++++ .../custom-reporter-path.vitest.config.ts | 13 +++++++++++++ test/reporters/tests/custom-reporter.spec.ts | 10 ++++++++++ test/reporters/tests/utils.test.ts | 2 +- 9 files changed, 49 insertions(+), 2 deletions(-) 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 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 ed7e433d400d..aad3aa695c88 100644 --- a/packages/vitest/src/node/reporters/utils.ts +++ b/packages/vitest/src/node/reporters/utils.ts @@ -6,7 +6,7 @@ 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) + customReporterModule = await runner.executeId(path) } catch (customReporterModuleError) { throw new Error(`Failed to load custom Reporter from ${path}`, { cause: customReporterModuleError as Error }) 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: 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..8403bc3468ea 100644 --- a/test/reporters/package.json +++ b/test/reporters/package.json @@ -6,6 +6,7 @@ }, "devDependencies": { "execa": "^6.1.0", + "pkg-reporter": "./reportPkg/", "vitest": "workspace:*" } } 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/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 42b9554a67aa..624bdd4451c2 100644 --- a/test/reporters/tests/custom-reporter.spec.ts +++ b/test/reporters/tests/custom-reporter.spec.ts @@ -45,6 +45,16 @@ 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') + }, 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') + }, 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) expect(stdout).includes('hello from custom 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', () => {