Configuration
Cette page a été traduite par PageTurner AI (bêta). Non approuvée officiellement par le projet. Vous avez trouvé une erreur ? Signaler un problème →
Nous recommandons d'utiliser Vitest, mais vous pouvez utiliser cette bibliothèque avec n'importe quel runner de tests compatible ESM.
Vitest
Ajoutez les dépendances de développement
@testing-library/svelte@testing-library/jest-dom(Optionnel, mais vivement recommandé)@sveltejs/vite-plugin-sveltevitestjsdom,happy-domou un autre environnement DOM pour 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 \
jsdomVous pouvez optionnellement installer
@vitest/ui, qui ouvre une interface dans un navigateur pour suivre l'exécution et interagir avec vos tests.- npm
- Yarn
npm install --save-dev @vitest/uiyarn add --dev @vitest/uiCréez un fichier
vitest-setup.jspour configurer les matchers@testing-library/jest-domsi besoin.vitest-setup.jsimport '@testing-library/jest-dom/vitest'Ajoutez
vitest.config.js, ou modifiez votrevite.config.jsexistant avec les plugins VitesvelteetsvelteTesting. Configurez l'environnement de test avec votre bibliothèque DOM et ajoutez éventuellement le fichier de setup de l'étape (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, si vous utilisez 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'],
},
})noteLe plugin
svelteTesting:- Ajoute un nettoyage automatique à
test.setupFiles - Ajoute
browseràresolve.conditions
Si nécessaire, vous pouvez désactiver ces comportements. Désactiver les deux revient à omettre le plugin.
svelteTesting({
// disable auto cleanup
autoCleanup: false,
// disable browser resolution condition
resolveBrowser: false,
})La résolution de la condition
browserpeut causer des problèmes avec des configurations Vite complexes ou des dépendances incompatibles avec Node.js. Voir testing-library/svelte-testing-library#222 pour plus d'informations et des alternatives de configuration.- Ajoute un nettoyage automatique à
Ajoutez des scripts de test dans votre
package.jsonpour exécuter les tests avec Vitestpackage.json{
"scripts": {
"test": "vitest run",
"test:ui": "vitest --ui",
"test:watch": "vitest"
}
}Créez votre composant et un fichier de test (consultez le reste de la documentation) puis exécutez la commande suivante :
- npm
- Yarn
npm testyarn test
TypeScript
Ajoutez @testing-library/jest-dom aux types TypeScript pour que le compilateur TypeScript reconnaisse les matchers de @testing-library/jest-dom.
{
"compilerOptions": {
"types": ["@testing-library/jest-dom"],
}
}
Jest
@testing-library/svelte est uniquement ESM, ce qui nécessite d'utiliser Jest en mode ESM.
Ajoutez les dépendances de développement
@testing-library/svelte@testing-library/jest-dom(Optionnel, mais vivement recommandé)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-jsdomCréez un fichier
jest-setup.jspour configurer@testing-library/jest-domsi utilisé.jest-setup.jsimport '@testing-library/jest-dom'Configurez Jest pour utiliser jsdom, transformer les fichiers Svelte et utiliser votre fichier de setup
jest.config.jsexport default {
transform: {
'^.+\\.svelte$': 'svelte-jester',
},
moduleFileExtensions: ['js', 'svelte'],
extensionsToTreatAsEsm: ['.svelte'],
testEnvironment: 'jsdom',
setupFilesAfterEnv: ['<rootDir>/jest-setup.js'],
}noteSi vous utilisez Svelte 5, vous devez utiliser
svelte-jester@5ou une version ultérieure, et vous devrez apporter des modifications supplémentaires à votre configuration Jest.- Mettez à jour
transformpour compiler les modules.svelte.(js|ts) - Autorisez la transformation de
@testing-library/svelte, même s'il se trouve dansnode_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'],
}- Mettez à jour
Ajoutez ce qui suit à votre fichier
package.jsonpackage.json{
"scripts": {
"test": "npx --node-options=\"--experimental-vm-modules\" jest src",
"test:watch": "npx --node-options=\"--experimental-vm-modules\" jest src --watch"
}
}Créez votre composant et un fichier de test (consultez le reste de la documentation pour voir comment faire) et exécutez les tests
- npm
- Yarn
npm testyarn test
TypeScript et préprocesseurs
Pour utiliser TypeScript avec Jest, vous devrez installer et configurer
svelte-preprocess et ts-jest. Pour des instructions complètes, consultez la
documentation de svelte-jester.
Si vous souhaitez inclure d'autres préprocesseurs Svelte,
consultez la documentation de svelte-jester.