Configuración
Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
Recomendamos usar Vitest, pero puedes utilizar la biblioteca con cualquier ejecutor de pruebas compatible con ESM.
Vitest
Agregar dependencias de desarrollo
@testing-library/svelte@testing-library/jest-dom(Opcional, pero muy recomendado)@sveltejs/vite-plugin-sveltevitestjsdom,happy-domu otro entorno DOM de Vitest
- npm
- Yarn
npm install --save-dev \
@testing-library/svelte \
@testing-library/jest-dom \
@sveltejs/vite-plugin-svelte \
vitest \
jsdomyarn add --dev \
@testing-library/svelte \
@testing-library/jest-dom \
@sveltejs/vite-plugin-svelte \
vitest \
jsdomOpcionalmente instala
@vitest/ui, que abre una interfaz en el navegador para monitorear el progreso e interactuar con tus pruebas.- npm
- Yarn
npm install --save-dev @vitest/uiyarn add --dev @vitest/uiAgrega un archivo
vitest-setup.jspara configurar opcionalmente los matchers de expectativa de@testing-library/jest-dom.vitest-setup.jsimport '@testing-library/jest-dom/vitest'Agrega
vitest.config.jso actualiza tuvite.config.jsexistente con los plugins de VitesvelteysvelteTesting. Configura el entorno de pruebas con tu biblioteca DOM preferida y opcionalmente configura tu archivo de setup del paso (2).vite.config.jsimport {defineConfig} from 'vitest/config'
import {svelte} from '@sveltejs/vite-plugin-svelte'
import {svelteTesting} from '@testing-library/svelte/vite'
export default defineConfig({
plugins: [svelte(), svelteTesting()],
test: {
environment: 'jsdom',
setupFiles: ['./vitest-setup.js'],
},
})O, si usas SvelteKit:
vite.config.jsimport {defineConfig} from 'vitest/config'
import {sveltekit} from '@sveltejs/kit/vite'
import {svelteTesting} from '@testing-library/svelte/vite'
export default defineConfig({
plugins: [sveltekit(), svelteTesting()],
test: {
environment: 'jsdom',
setupFiles: ['./vitest-setup.js'],
},
})notaEl plugin
svelteTesting:- Añade limpieza automática a
test.setupFiles - Agrega
browseraresolve.conditions
Si es necesario, puedes desactivar cada comportamiento. Deshabilitar ambas opciones equivale a omitir el plugin.
svelteTesting({
// disable auto cleanup
autoCleanup: false,
// disable browser resolution condition
resolveBrowser: false,
})Resolver la condición
browserpuede causar problemas con configuraciones complejas de Vite o dependencias que no pueden cargarse en Node.js. Consulta testing-library/svelte-testing-library#222 para más información y opciones alternativas que aseguren el uso del código browser de Svelte.- Añade limpieza automática a
Agrega scripts de prueba a tu
package.jsonpara ejecutar tests con Vitestpackage.json{
"scripts": {
"test": "vitest run",
"test:ui": "vitest --ui",
"test:watch": "vitest"
}
}Crea tu componente y un archivo de prueba (revisa el resto de la documentación para ver cómo) y ejecuta este comando para correr las pruebas.
- npm
- Yarn
npm testyarn test
TypeScript
Incluye @testing-library/jest-dom en los types de TypeScript para que el compilador reconozca los matchers de @testing-library/jest-dom.
{
"compilerOptions": {
"types": ["@testing-library/jest-dom"],
}
}
Jest
@testing-library/svelte solo funciona con ESM, lo que significa que debes usar Jest en modo ESM.
Agrega dependencias de desarrollo
@testing-library/svelte@testing-library/jest-dom(Opcional, pero altamente recomendado)svelte-jesterjestjest-environment-jsdom
- npm
- Yarn
npm install --save-dev \
@testing-library/svelte \
@testing-library/jest-dom \
svelte-jester \
jest \
jest-environment-jsdomyarn add --dev \
@testing-library/svelte \
@testing-library/jest-dom \
svelte-jester \
jest \
jest-environment-jsdomCrea un archivo
jest-setup.jspara configurar@testing-library/jest-dom, si lo usas.jest-setup.jsimport '@testing-library/jest-dom'Configura Jest para usar jsdom, transformar archivos Svelte y utilizar tu archivo de configuración
jest.config.jsexport default {
transform: {
'^.+\\.svelte$': 'svelte-jester',
},
moduleFileExtensions: ['js', 'svelte'],
extensionsToTreatAsEsm: ['.svelte'],
testEnvironment: 'jsdom',
setupFilesAfterEnv: ['<rootDir>/jest-setup.js'],
}notaSi usas Svelte 5, debes usar
svelte-jester@5o superior, y necesitarás realizar cambios adicionales en tu configuración de Jest:- Actualiza
transformpara compilar módulos.svelte.(js|ts) - Permite que
@testing-library/sveltese transforme, aunque esté ennode_modules
jest.config.jsexport default {
transform: {
- '^.+\\.svelte$': 'svelte-jester',
+ '^.+\\.svelte(\\.(js|ts))?$': 'svelte-jester',
},
+ transformIgnorePatterns: [
+ '/node_modules/(?!@testing-library/svelte/)',
+ ],
moduleFileExtensions: ['js', 'svelte'],
extensionsToTreatAsEsm: ['.svelte'],
testEnvironment: 'jsdom',
setupFilesAfterEnv: ['<rootDir>/jest-setup.js'],
}- Actualiza
Agrega lo siguiente a tu
package.jsonpackage.json{
"scripts": {
"test": "npx --node-options=\"--experimental-vm-modules\" jest src",
"test:watch": "npx --node-options=\"--experimental-vm-modules\" jest src --watch"
}
}Crea tu componente + archivo de prueba (revisa el resto de la documentación para ver cómo) y ejecútalo
- npm
- Yarn
npm testyarn test
TypeScript y preprocesadores
Para usar TypeScript con Jest, necesitarás instalar y configurar
svelte-preprocess y ts-jest. Para instrucciones completas, consulta la
documentación de svelte-jester.
Si deseas incluir otros preprocesadores de Svelte, revisa
la documentación de svelte-jester.