Files
PlantAI-rag-new/frontend/vitest.config.js
T

40 lines
1.7 KiB
JavaScript
Raw Normal View History

// vitest.config.js —— B1 归属。单测配置(jsdom + @vue/test-utils)。
// 测试文件位于项目根 tests/frontend/unit(frontend/ 之外),依赖解析自 frontend/node_modules:
// - server.fs.allow 放行上级目录
// - include 用绝对路径(与运行 cwd 无关)
// - 测试文件中的裸导入(pinia/vue/@vue/test-utils)以 alias 指到 frontend/node_modules 的 ESM 入口
// 运行方式(任选):
// cd frontend && npx vitest run tests/frontend/unit/b1
// 或项目根:npx --prefix frontend vitest run --config frontend/vitest.config.js tests/frontend/unit/b1
import { fileURLToPath } from 'node:url';
import { defineConfig } from 'vitest/config';
import vue from '@vitejs/plugin-vue';
const nodeModules = fileURLToPath(new URL('./node_modules', import.meta.url));
const testsDir = fileURLToPath(new URL('../tests/frontend/unit', import.meta.url));
export default defineConfig({
plugins: [vue()],
// 独立依赖缓存目录:避免与 dev server(node_modules/.vite)争用 optimizeDeps 锁
cacheDir: 'node_modules/.vite-vitest',
resolve: {
alias: {
// 测试文件在 frontend/ 外,裸包名解析不到 frontend/node_modules
pinia: `${nodeModules}/pinia/dist/pinia.mjs`,
vue: `${nodeModules}/vue/index.mjs`,
'@vue/test-utils': `${nodeModules}/@vue/test-utils/dist/vue-test-utils.esm-bundler.mjs`,
},
},
server: {
// 测试文件位于项目根 tests/(frontend/ 之外),放行上级目录
fs: { allow: ['..'] },
},
test: {
environment: 'jsdom',
// 测试目录在项目根 tests/frontend/unit(B1/B2/B3 各自子树)
include: [`${testsDir}/**/*.{test,spec}.js`],
globals: false,
setupFiles: [`${testsDir}/b1/setup.js`],
},
});