Vitest 구성 파일 관리
Vite를 사용 중이고 vite.config
파일이 있다면, Vitest는 해당 파일을 읽어 Vite 앱과 동일한 플러그인 및 설정을 적용합니다. 테스트 환경에 다른 구성을 적용하고 싶거나, 메인 앱이 Vite에 의존적이지 않은 경우에는 다음 방법 중 하나를 사용할 수 있습니다.
vitest.config.ts
파일을 생성하면, 이 파일이vite.config.ts
보다 우선순위가 높아 설정을 덮어씁니다. (Vitest는 표준 JS 및 TS 확장자를 모두 지원하지만json
은 지원하지 않습니다.) 즉,vite.config
에 정의된 모든 옵션이 무시됩니다.- CLI에
--config
옵션을 전달합니다. 예:vitest --config ./path/to/vitest.config.ts
process.env.VITEST
또는defineConfig
의mode
속성(--mode
로 재정의되지 않았다면test
/benchmark
로 설정됨)을 사용하여vite.config.ts
내에서 조건부로 설정을 변경할 수 있습니다.
Vitest를 구성하려면 Vite 구성에 test
속성을 추가해야 합니다. vite
에서 defineConfig
를 가져오는 경우, 설정 파일 상단에 트리플 슬래시 명령어를 사용하여 Vitest 타입에 대한 참조를 추가해야 합니다.
vite
에서 defineConfig
를 사용하는 경우:
ts
/// <reference types="vitest" />
import { defineConfig } from 'vite';
export default defineConfig({
test: {
// ... 여기에 옵션을 지정합니다.
},
});
vitest/config
에서 defineConfig
를 사용하는 경우:
ts
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
// ... 여기에 옵션을 지정합니다.
},
});
필요하다면 Vitest의 기본 옵션을 가져와 확장할 수 있습니다.
ts
import { configDefaults, defineConfig } from 'vitest/config';
export default defineConfig({
test: {
exclude: [...configDefaults.exclude, 'packages/template/*'],
},
});
별도의 vitest.config.js
를 사용하는 경우, 다른 설정 파일에서 Vite의 옵션을 확장할 수도 있습니다.
ts
import { defineConfig, mergeConfig } from 'vitest/config';
import viteConfig from './vite.config';
export default mergeConfig(
viteConfig,
defineConfig({
test: {
exclude: ['packages/template/*'],
},
})
);
Vite 설정이 함수로 정의된 경우, 다음과 같이 설정을 정의할 수 있습니다.
ts
import { defineConfig, mergeConfig } from 'vitest/config';
import viteConfig from './vite.config';
export default defineConfig(configEnv =>
mergeConfig(
viteConfig(configEnv),
defineConfig({
test: {
exclude: ['packages/template/*'],
},
})
)
);