From c45df6f6eca1040f159cc33580d9a3790c62a1ae Mon Sep 17 00:00:00 2001 From: roymondchen Date: Mon, 18 May 2026 12:49:04 +0800 Subject: [PATCH] =?UTF-8?q?build:=20=E4=BC=98=E5=8C=96test=E6=80=A7?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vitest.config.ts | 63 ++++++++++++++++++++++++++++++++++++------------ 1 file changed, 47 insertions(+), 16 deletions(-) diff --git a/vitest.config.ts b/vitest.config.ts index 3934ba73..609ee847 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -5,13 +5,14 @@ import Vue from '@vitejs/plugin-vue'; const r = (p: string) => resolve(__dirname, p); -export default defineConfig({ - plugins: [Vue()], +const alias = { + '@editor': r('./packages/editor/src'), + '@form': r('./packages/form/src'), + '@data-source': r('./packages/data-source/src'), +}; +export default defineConfig({ test: { - include: ['./packages/*/tests/**', './runtime/*/tests/**'], - environment: 'happy-dom', - environmentMatchGlobs: [['packages/cli/**', 'node']], coverage: { include: ['packages/*/src/**'], exclude: [ @@ -22,21 +23,51 @@ export default defineConfig({ './packages/*/types/**', './packages/*/tests/**', './packages/cli/lib/**', - './packages/ui/**', - './packages/ui-react/**', './packages/design/**', './packages/element-plus-adapter/**', './packages/tdesign-vue-next-adapter/**', ], - extension: ['.ts', '.vue'], - }, - }, - - resolve: { - alias: { - '@editor': r('./packages/editor/src'), - '@form': r('./packages/form/src'), - '@data-source': r('./packages/data-source/src'), }, + projects: [ + { + plugins: [Vue()], + resolve: { alias }, + test: { + name: 'dom', + include: ['./packages/*/tests/**', './runtime/*/tests/**'], + exclude: ['./packages/cli/tests/**', './packages/editor/tests/unit/hooks/use-stage.spec.ts'], + environment: 'happy-dom', + pool: 'vmThreads', + vmMemoryLimit: '2GB', + maxWorkers: 8, + // 配置不同 pool/maxWorkers 的项目需要分到不同 group,否则 vitest 无法调度 + sequence: { groupOrder: 0 }, + }, + }, + { + plugins: [Vue()], + resolve: { alias }, + test: { + name: 'dom-forks', + include: ['./packages/editor/tests/unit/hooks/use-stage.spec.ts'], + environment: 'happy-dom', + pool: 'forks', + isolate: false, + sequence: { groupOrder: 1 }, + }, + }, + { + plugins: [Vue()], + resolve: { alias }, + test: { + name: 'node', + include: ['./packages/cli/tests/**'], + environment: 'node', + pool: 'forks', + isolate: false, + sequence: { groupOrder: 2 }, + }, + }, + ], }, });