2
0

vitest.config.ts 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. import { defineConfig } from 'vitest/config'
  2. import { resolve } from 'path'
  3. export default defineConfig({
  4. test: {
  5. projects: [
  6. // Node.js 环境项目 - 后端测试
  7. {
  8. test: {
  9. name: 'node',
  10. environment: 'node',
  11. include: [
  12. 'tests/unit/server/**/*.test.{ts,js}',
  13. 'tests/integration/server/**/*.test.{ts,js}'
  14. ],
  15. exclude: [
  16. '**/node_modules/**',
  17. '**/dist/**',
  18. '**/build/**',
  19. '**/coverage/**',
  20. 'tests/e2e/**'
  21. ],
  22. alias: {
  23. '@': resolve(__dirname, './src'),
  24. '@/client': resolve(__dirname, './src/client'),
  25. '@/server': resolve(__dirname, './src/server'),
  26. '@/share': resolve(__dirname, './src/share'),
  27. '@/test': resolve(__dirname, './src/test')
  28. }
  29. }
  30. },
  31. // Happy DOM 环境项目 - 前端组件测试
  32. {
  33. test: {
  34. name: 'happy-dom',
  35. environment: 'happy-dom',
  36. include: [
  37. 'tests/unit/client/**/*.test.{ts,js,tsx,jsx}',
  38. 'tests/integration/client/**/*.test.{ts,js,tsx,jsx}'
  39. ],
  40. exclude: [
  41. '**/node_modules/**',
  42. '**/dist/**',
  43. '**/build/**',
  44. '**/coverage/**',
  45. 'tests/e2e/**',
  46. 'src/client/home/**',
  47. 'src/client/components/ui/**',
  48. 'src/client/__test_utils__/**',
  49. ],
  50. alias: {
  51. '@': resolve(__dirname, './src'),
  52. '@/client': resolve(__dirname, './src/client'),
  53. '@/server': resolve(__dirname, './src/server'),
  54. '@/share': resolve(__dirname, './src/share'),
  55. '@/test': resolve(__dirname, './src/test')
  56. },
  57. },
  58. }
  59. ],
  60. // 共享配置
  61. globals: true,
  62. testTimeout: 10000,
  63. setupFiles: ['./src/test/setup.ts'],
  64. // 覆盖率配置 - 放在根级别
  65. coverage: {
  66. provider: 'v8',
  67. reporter: ['text', 'lcov', 'html'],
  68. reportsDirectory: './coverage',
  69. exclude: [
  70. '**/node_modules/**',
  71. '**/dist/**',
  72. '**/build/**',
  73. '**/coverage/**',
  74. '**/*.d.ts',
  75. 'tests/e2e/**',
  76. 'scripts/**',
  77. 'src/test/**',
  78. '**/__tests__/**',
  79. '**/__mocks__/**',
  80. '**/index.ts',
  81. '**/types.ts',
  82. 'vitest.config.ts',
  83. 'vitest.config.components.ts',
  84. 'vite.config.ts',
  85. 'server.js',
  86. 'eslint.config.js',
  87. 'debug-page.js',
  88. 'src/server/__test_utils__/**',
  89. 'src/client/__test_utils__/**',
  90. ],
  91. thresholds: {
  92. branches: 65,
  93. functions: 65,
  94. lines: 65,
  95. statements: 65
  96. }
  97. }
  98. },
  99. })