Configuração
Esta página foi traduzida por PageTurner AI (beta). Não é oficialmente endossada pelo projeto. Encontrou um erro? Reportar problema →
Recomendamos usar o Vitest, mas você pode utilizar a biblioteca com qualquer executor de testes compatível com ESM.
Vitest
Adicione dependências de desenvolvimento
@testing-library/svelte@testing-library/jest-dom(Opcional, mas altamente recomendado)@sveltejs/vite-plugin-sveltevitestjsdom,happy-domou outro ambiente DOM do 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, instale
@vitest/ui, que abre uma interface no navegador para acompanhar o progresso e interagir com seus testes.- npm
- Yarn
npm install --save-dev @vitest/uiyarn add --dev @vitest/uiCrie um arquivo
vitest-setup.jspara configurar opcionalmente os matchers de expectativa do@testing-library/jest-dom.vitest-setup.jsimport '@testing-library/jest-dom/vitest'Adicione
vitest.config.jsou atualize seuvite.config.jsexistente com os plugins VitesvelteesvelteTesting. Defina o ambiente de testes para sua biblioteca DOM preferida e opcionalmente configure seu arquivo de setup do passo (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'],
},
})Ou, se estiver usando 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'],
},
})notaO plugin
svelteTesting:- Adiciona uma rotina de limpeza automática em
test.setupFiles - Adiciona
browseraresolve.conditions
Se necessário, você pode desabilitar cada comportamento. Desabilitar ambas as opções equivale a omitir o plugin.
svelteTesting({
// disable auto cleanup
autoCleanup: false,
// disable browser resolution condition
resolveBrowser: false,
})Resolver a condição
browserpode causar problemas em configurações complexas do Vite ou dependências que não podem ser carregadas no Node.js. Consulte testing-library/svelte-testing-library#222 para mais informações e opções alternativas de configuração para garantir o uso do código browser do Svelte.- Adiciona uma rotina de limpeza automática em
Adicione scripts de teste ao seu
package.jsonpara executar os testes com Vitestpackage.json{
"scripts": {
"test": "vitest run",
"test:ui": "vitest --ui",
"test:watch": "vitest"
}
}Crie seu componente e um arquivo de teste (consulte o restante da documentação para ver como) e execute o seguinte comando para rodar os testes.
- npm
- Yarn
npm testyarn test
TypeScript
Inclua @testing-library/jest-dom nos types do TypeScript para que o compilador TypeScript reconheça os matchers do @testing-library/jest-dom.
{
"compilerOptions": {
"types": ["@testing-library/jest-dom"],
}
}
Jest
@testing-library/svelte funciona apenas com ESM, o que significa que você deve usar o Jest no modo ESM.
Adicione as dependências de desenvolvimento
@testing-library/svelte@testing-library/jest-dom(Opcional, mas 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-jsdomCrie um arquivo
jest-setup.jspara configurar os matchers do@testing-library/jest-dom, se for usá-lo.jest-setup.jsimport '@testing-library/jest-dom'Configure o Jest para usar jsdom, transformar arquivos Svelte e utilizar seu arquivo de configuração
jest.config.jsexport default {
transform: {
'^.+\\.svelte$': 'svelte-jester',
},
moduleFileExtensions: ['js', 'svelte'],
extensionsToTreatAsEsm: ['.svelte'],
testEnvironment: 'jsdom',
setupFilesAfterEnv: ['<rootDir>/jest-setup.js'],
}notaSe você estiver usando Svelte 5, será necessário utilizar
svelte-jester@5ou superior e fazer ajustes adicionais na configuração do Jest:- Atualize
transformpara compilar módulos.svelte.(js|ts) - Permita que
@testing-library/svelteseja transformado, mesmo estando emnode_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'],
}- Atualize
Adicione os seguintes scripts ao seu
package.jsonpackage.json{
"scripts": {
"test": "npx --node-options=\"--experimental-vm-modules\" jest src",
"test:watch": "npx --node-options=\"--experimental-vm-modules\" jest src --watch"
}
}Crie seu componente e arquivo de teste (consulte o restante da documentação para ver como) e execute os testes
- npm
- Yarn
npm testyarn test
TypeScript e pré-processadores
Para usar TypeScript com Jest, você precisará instalar e configurar
svelte-preprocess e ts-jest. Para instruções completas, consulte a
documentação do svelte-jester.
Se você quiser incluir outros pré-processadores Svelte, consulte a
documentação do svelte-jester.