Jest 설정 생성기
스택을 고르세요, TypeScript, React, Node 백엔드, Svelte, 그러면 생성기가 올바른 트랜스포머, 모듈 매퍼, 테스트 환경, 커버리지 임계값이 있는 jest.config.js를 출력합니다. 사람들이 잊는 모든 옵션을 포함합니다: CSS/이미지용 moduleNameMapper, setupFilesAfterEach, node_modules와 dist용 testPathIgnorePatterns.
Jest 설정 만드는 방법
-
1
스택 선택
TypeScript, React, Vue, Svelte, 순수 Node, 또는 혼합. 각각 올바른 트랜스포머를 미리 채웁니다.
-
2
테스트 환경 선택
브라우저 코드는 jsdom, 백엔드는 node, 또는 커스텀 환경.
-
3
기능 토글
커버리지 임계값, 스냅샷 테스트, 목 경로, 커스텀 setup 파일, transform ignore 패턴.
-
4
설정 다운로드
출력은 주석이 달린 `jest.config.js` 또는 `jest.config.ts`이며, `package.json`에 추가할 npm 스크립트도 함께 제공됩니다.
샘플 출력: React + TypeScript 프로젝트
module.exports = {
preset: "ts-jest",
testEnvironment: "jsdom",
setupFilesAfterEach: ["<rootDir>/jest.setup.ts"],
moduleNameMapper: {
"\\.(css|less|scss|sass)$": "identity-obj-proxy",
"\\.(jpg|jpeg|png|gif|svg)$": "<rootDir>/__mocks__/fileMock.js",
"^@/(.*)$": "<rootDir>/src/$1"
},
testPathIgnorePatterns: ["/node_modules/", "/dist/", "/build/"],
transform: {
"^.+\\.tsx?$": ["ts-jest", { tsconfig: "tsconfig.test.json" }]
},
collectCoverageFrom: [
"src/**/*.{ts,tsx}",
"!src/**/*.d.ts",
"!src/**/*.stories.*"
],
coverageThreshold: {
global: { branches: 80, functions: 80, lines: 85, statements: 85 }
}
};
결정 가이드: 어떤 환경?
| 코드가 실행되는 곳… | 사용 |
|---|---|
| 브라우저 (DOM, window) | jsdom (또는 속도를 위한 @happy-dom/jest-environment) |
| Node 서버 | node |
| 서비스 워커 | 커스텀 환경, node 베이스 |
| React Native | react-native 프리셋 |
트랜스포머 치트시트
| 소스 타입 | 트랜스포머 |
|---|---|
| TypeScript | ts-jest 또는 @swc/jest |
| Babel 컴파일 JSX | babel-jest (기본) |
| Vue SFC | @vue/vue3-jest + babel-jest |
| Svelte | svelte-jester |
| 정적 이미지 | moduleNameMapper의 수동 목 |
커버리지 임계값: 어떤 숫자?
- 핵심 경로 / 라이브러리: lines 90%+, branches 85%+.
- 기능 팀: lines 80%, branches 70%.
- 빠르게 바뀌는 UI: lines 60-70%; 비즈니스 로직은 더 높게, 레이아웃은 더 낮게.
- 프로토타입: 임계값을 완전히 끄세요; 커버리지를 게이트가 아니라 숫자로 추적하세요.
흔한 실수
- 순수 Node 코드에
jsdom사용. 테스트가 느려지고 얻는 게 없습니다,node로 전환하세요. - ESM 패키지용
transformIgnorePatterns누락. 최신 패키지는 ESM 전용으로 배포됩니다; Jest에 이를 변환하라고 알려야 합니다. - mapper 없이 이미지/CSS 목. 테스트에서
.png를 import하면 목 모듈 없이는 Jest가 넘어집니다. clearMocks를 false로 설정. 목이 테스트 간에 새고 실패가 비결정적이 됩니다. 기본으로 켜세요.
자주 묻는 질문
SWC(@swc/jest)는 Jest 내부에서 전체 타입 체크를 건너뛰어 ts-jest보다 10-20배 빠릅니다. 타입 체크는 CI에서 tsc --noEmit으로 따로 실행하세요. 타입 오류가 테스트를 실패시키길 원하면 ts-jest를, 속도를 원하면 SWC를 쓰세요.
happy-dom은 jsdom보다 대략 2-3배 빠르고 DOM API의 큰 부분 집합을 구현합니다. 일부 엣지 케이스를 놓치므로, “not implemented” 오류가 나면 jsdom으로 폴백하세요.
컴포넌트가 .css나 .scss 파일을 직접 import한다면 네. (CSS 모듈용) identity-obj-proxy나 작은 빈 스텁으로 매핑하세요. 이것이 없으면 테스트가 import 시점에 오류가 납니다.
네. TypeScript 출력 옵션을 고르면 생성기가 jest.config.ts를 내보냅니다. Jest 27+는 ts-node가 설치되어 있으면 .ts 설정을 자동 로드합니다.
관련 도구
ASCII 표 참조
NUL, LF, DEL 같은 제어 문자를 포함해 모든 문자에 대한 10진수, 16진수, 8진수, 2진수, HTML 숫자 문자 참조를 담은 0부터 127까지의 전체 ASCII 표.
HTML 문자 참조
HTML 엔티티의 검색 가능한 목록, 각 엔티티의 이름 및 숫자 코드, 그리고 특수 문자 및 기호에 대한 1클릭 복사 기능을 제공합니다.
키보드 단축키 참고표
macOS, Windows, Linux에서 VS Code, Chrome, GNU Readline을 쓰는 Bash의 문서화된 기본 단축키를 검색합니다.
보색 찾기
어떤 입력에 대해서도 보색을 찾습니다. HSL 반대 색, 분할 보색 쌍, 그리고 접근성 있는 조합 제안을 반환합니다.
이메일 검증기
이메일 주소를 검증합니다. RFC 5322 구문 검사, 실시간 MX 레코드 조회, 그리고 로컬 파트, 도메인, 길이 정보를 제공합니다. 이메일은 전송되지 않습니다.
EditorConfig 생성기
들여쓰기 스타일과 크기, 줄 끝, 문자 인코딩, 공백 규칙을 지정해 .editorconfig 파일을 생성하고 IDE와 편집기 전반의 형식을 일관되게 유지하세요.
이 도구는 다른 언어로도 제공됩니다
- Trình tạo cấu hình Jest [VI]
- Jest Konfigurationsgenerator [DE]
- Gerador de Configuração Jest [PT]
- เครื่องมือสร้างไฟล์ตั้งค่า Jest [TH]
- مولّد إعداد Jest [AR]
- Jest-konfigurationsgenerator [SV]
- Jest-configuratiegenerator [NL]
- Générateur de configuration Jest [FR]
- Generator Konfigurasi Jest [ID]
- Jest 設定ジェネレーター [JA]
- Generator konfiguracji Jest [PL]
- Generador de Configuración de Jest [ES]
- Jest Config Generator [EN]
- Generatore di Configurazione Jest [IT]
- Генератор конфигурации Jest [RU]
- Jest Yapılandırma Üreticisi [TR]
- Jest 配置生成器 [ZH]