Generador de Configuración de Jest
Elige tu stack, TypeScript, React, backend de Node, Svelte, y el generador produce un jest.config.js con los transformadores, mapeo de módulos, entorno de prueba y umbrales de cobertura adecuados. Incluye todas las opciones que la gente olvida: moduleNameMapper para CSS/imágenes, setupFilesAfterEach, testPathIgnorePatterns para node_modules y dist.
Cómo construir una configuración de Jest
-
1
Elige tu stack
TypeScript, React, Vue, Svelte, Node puro, o una mezcla. Cada uno pre-llena los transformadores adecuados.
-
2
Elige el entorno de prueba
jsdom para código de navegador, node para backend, o entorno personalizado.
-
3
Activa características
Umbrales de cobertura, pruebas de instantáneas, rutas simuladas, archivos de configuración personalizados, patrones de ignorar transformaciones.
-
4
Descarga la configuración
La salida es un `jest.config.js` comentado o `jest.config.ts`, además de los scripts de npm que deberías agregar a `package.json`.
Salida de ejemplo: proyecto 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 }
}
};
Guía de decisiones: ¿qué entorno?
| Tu código se ejecuta en… | Usa |
|---|---|
| Navegador (DOM, ventana) | jsdom (o @happy-dom/jest-environment para velocidad) |
| Servidor Node | node |
| Trabajadores de servicio | Entorno personalizado, base node |
| React Native | Preset react-native |
Hoja de trucos de transformadores
| Tipo de fuente | Transformador |
|---|---|
| TypeScript | ts-jest o @swc/jest |
| JSX compilado por Babel | babel-jest (predeterminado) |
| Vue SFC | @vue/vue3-jest + babel-jest |
| Svelte | svelte-jester |
| Imágenes estáticas | Simulación manual en moduleNameMapper |
Umbrales de cobertura: ¿qué números?
- Ruta crítica / bibliotecas: 90%+ líneas, 85%+ ramas.
- Equipos de características: 80% líneas, 70% ramas.
- UI en cambio rápido: 60-70% líneas; apunta más alto para lógica de negocio, más bajo para diseño.
- Prototipos: desactiva los umbrales por completo; rastrea la cobertura como un número, no como una puerta.
Errores comunes
- Usar
jsdompara código de Node puro. Pruebas más lentas y nada ganado, cambia anode. - Falta
transformIgnorePatternspara paquetes ESM. Los paquetes modernos se envían solo en ESM; Jest necesita ser informado para transformarlos. - Simular imágenes / CSS sin un mapeador. Importa un
.pngen una prueba y Jest falla sin un módulo simulado. - Configurar
clearMocksen falso. Las simulaciones se filtran entre pruebas y los fallos se vuelven no determinísticos. Actívalo por defecto.
Preguntas frecuentes
SWC (@swc/jest) es 10-20 veces más rápido que ts-jest porque omite la verificación de tipos completa dentro de Jest. Ejecuta la verificación de tipos por separado como tsc --noEmit en CI. Usa ts-jest cuando quieras que los errores de tipo fallen las pruebas; usa SWC por velocidad.
happy-dom es aproximadamente 2-3 veces más rápido que jsdom e implementa un gran subconjunto de las API del DOM. Falta en algunos casos extremos, así que si encuentras un error de “no implementado”, vuelve a jsdom.
Sí, si tus componentes importan archivos .css o .scss directamente. Mapea a identity-obj-proxy (para módulos CSS) o un pequeño stub vacío. Sin esto, tus pruebas fallarán en el momento de la importación.
Sí. Elige la opción de salida de TypeScript y el generador emite jest.config.ts. Jest 27+ carga automáticamente configuraciones .ts cuando ts-node está instalado.
Herramientas relacionadas
Referencia de la tabla ASCII
Tabla ASCII completa del 0 al 127 con decimal, hex, octal, binario y referencia numérica HTML para cada carácter, incluidos los códigos de control como NUL, LF y DEL.
Referencia de caracteres HTML
Lista buscable de entidades HTML, sus códigos nombrados y numéricos, y una copia con un clic para caracteres y símbolos especiales.
Referencia de atajos de teclado
Busca los atajos predeterminados documentados de VS Code, Chrome y Bash con GNU Readline en macOS, Windows y Linux.
Generador de letras aleatorias
Genera letras aleatorias A-Z. Elige la cantidad, usa mayúsculas, minúsculas o mezcla de ambas, y aplica el resultado en juegos, consignas o clase.
Generador de Paletas de Color
Genera paletas monocromáticas, análogas, complementarias, triádicas o tetrádicas desde un color base HEX y exporta variables CSS listas para copiar.
Generador de EditorConfig
Genera un archivo .editorconfig con tu estilo y tamaño de indentación, fin de línea, charset y reglas de espacios para un formato consistente en IDEs y editores.
Herramienta disponible en otros idiomas
- Générateur de configuration Jest [FR]
- Jest-konfigurationsgenerator [SV]
- เครื่องมือสร้างไฟล์ตั้งค่า Jest [TH]
- مولّد إعداد Jest [AR]
- Generator Konfigurasi Jest [ID]
- Trình tạo cấu hình Jest [VI]
- Jest 설정 생성기 [KO]
- Jest Konfigurationsgenerator [DE]
- Jest-configuratiegenerator [NL]
- Generator konfiguracji Jest [PL]
- Jest 設定ジェネレーター [JA]
- Gerador de Configuração Jest [PT]
- Генератор конфигурации Jest [RU]
- Jest Yapılandırma Üreticisi [TR]
- Jest 配置生成器 [ZH]
- Jest Config Generator [EN]
- Generatore di Configurazione Jest [IT]