/** * Vitest 配置文件 */ import { defineConfig } from "vitest/config" import react from "@vitejs/plugin-react" import path from "path" export default defineConfig({ plugins: [react()], test: { globals: true, environment: "jsdom", setupFiles: "./src/test/setup.ts", include: ["src/test/**/*.test.ts", "src/test/**/*.test.tsx"], exclude: ["node_modules/", "e2e/", "**/*.spec.ts", "**/*.spec.tsx"], coverage: { provider: "v8", reporter: ["text", "json", "html"], exclude: [ "node_modules/", "src/test/", "e2e/", "**/*.d.ts", "**/*.config.*", "**/mockData", // 页面级组件不纳入单测覆盖率统计(页面级走 E2E/手动测试) "src/pages/generate/GeneratePage.tsx", "src/pages/editing-planner/EditingPlanner.tsx", "src/pages/assets/AssetLibrary.tsx", "src/pages/voice-materials/VoiceMaterialLibrary.tsx", ], // CI 覆盖率门禁(Phase 4 后提升,逐步逼近目标) // 当前实际:行 ~62% / 分支 ~61% / 函数 ~25% thresholds: { lines: 50, branches: 50, functions: 20, }, }, }, resolve: { alias: { "@": path.resolve(__dirname, "./src"), }, }, })