import { defineConfig } from 'vitest/config' import { resolve } from 'path' export default defineConfig({ test: { // 测试环境 environment: 'node', // 测试文件匹配模式 include: [ 'src/server/api/**/__tests__/**', 'src/server/modules/**/__tests__/**', 'src/server/utils/**/__tests__/**', 'src/server/**/__integration_tests__/**' ], // 排除模式 exclude: [ '**/node_modules/**', '**/dist/**', '**/build/**', '**/coverage/**', 'tests/e2e/**', // 排除Playwright E2E测试文件 'src/client/**', // 排除客户端代码,由组件测试配置处理 ], // 覆盖率配置 coverage: { provider: 'v8', reporter: ['text', 'lcov', 'html'], reportsDirectory: './coverage', exclude: [ '**/node_modules/**', '**/dist/**', '**/build/**', '**/coverage/**', '**/*.d.ts', 'src/client/**', // 排除所有客户端代码 'tests/e2e/**', // 排除e2e测试代码 'scripts/**', // 排除脚本目录 'src/test/**', // 排除测试工具目录 '**/__tests__/**', '**/__mocks__/**', '**/index.ts', '**/types.ts', 'vitest.config.ts', 'vitest.config.components.ts', 'vite.config.ts', 'server.js', 'eslint.config.js', 'debug-page.js', 'src/server/__test_utils__/**', ], thresholds: { branches: 70, functions: 70, lines: 70, statements: 70 } }, // 全局设置 globals: true, // 测试超时 testTimeout: 10000, // 设置文件 setupFiles: ['./src/test/setup.ts'], // 别名配置 alias: { '@': resolve(__dirname, './src'), '@/client': resolve(__dirname, './src/client'), '@/server': resolve(__dirname, './src/server'), '@/share': resolve(__dirname, './src/share'), '@/test': resolve(__dirname, './test') }, // api测试关闭并行测试 fileParallelism: false } })