vitest.config.ts 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import { defineConfig } from 'vitest/config'
  2. import { resolve } from 'path'
  3. export default defineConfig({
  4. test: {
  5. // 测试环境
  6. environment: 'node',
  7. // 测试文件匹配模式
  8. include: [
  9. '**/__tests__/**/*.test.{js,ts,jsx,tsx}',
  10. '**/?(*.)+(spec|test).{js,ts,jsx,tsx}'
  11. ],
  12. // 排除模式
  13. exclude: [
  14. '**/node_modules/**',
  15. '**/dist/**',
  16. '**/build/**',
  17. '**/coverage/**',
  18. 'tests/e2e/**' // 排除Playwright E2E测试文件
  19. ],
  20. // 覆盖率配置
  21. coverage: {
  22. provider: 'v8',
  23. reporter: ['text', 'lcov', 'html'],
  24. reportsDirectory: './coverage',
  25. exclude: [
  26. '**/node_modules/**',
  27. '**/dist/**',
  28. '**/build/**',
  29. '**/coverage/**',
  30. '**/*.d.ts',
  31. 'src/client/api.ts',
  32. '**/__tests__/**',
  33. '**/__mocks__/**',
  34. '**/index.ts',
  35. '**/types.ts'
  36. ],
  37. thresholds: {
  38. branches: 70,
  39. functions: 70,
  40. lines: 70,
  41. statements: 70
  42. }
  43. },
  44. // 全局设置
  45. globals: true,
  46. // 测试超时
  47. testTimeout: 10000,
  48. // 监听模式忽略
  49. watchExclude: [
  50. '**/node_modules/**',
  51. '**/dist/**',
  52. '**/build/**',
  53. '**/coverage/**'
  54. ],
  55. // 设置文件
  56. setupFiles: ['./src/test/setup.ts'],
  57. // 别名配置
  58. alias: {
  59. '@': resolve(__dirname, './src'),
  60. '@/client': resolve(__dirname, './src/client'),
  61. '@/server': resolve(__dirname, './src/server'),
  62. '@/share': resolve(__dirname, './src/share'),
  63. '@/test': resolve(__dirname, './test')
  64. }
  65. }
  66. })