vitest.config.ts 2.9 KB

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