
Vitest unifie tests et build Vite sur React : vous réutilisez la même config, profitez d'une API proche de Jest et gagnez du temps en local comme en pipeline CI.
La documentation Vitest présente le framework comme un outil de test natif pour les projets Vite : la résolution des modules, les plugins et la configuration de build sont réutilisés tels quels. Sur une application React déjà servie par Vite, vous évitez ainsi une seconde chaîne de transformation dédiée aux tests, ce qui réduit le temps de démarrage et les écarts entre l'environnement de dev et celui de test.
Pour une équipe qui livre en continu, l'intérêt est concret : moins de fichiers à maintenir, une API familière pour les équipes Jest et une exécution en mode watch adaptée au quotidien. Consultez la page d'accueil Vitest pour le détail des fonctionnalités et des guides de migration.
vite.config existant. Les alias, plugins React et options de résolution restent identiques entre dev et tests.describe, it, expect et les mocks suivent les habitudes Jest, ce qui facilite l'adoption sans réécrire toute la suite de tests.Ajoutez Vitest et l'environnement DOM dans votre projet Vite + React :
npm install -D vitest jsdom @testing-library/react @testing-library/jest-dom
Étendez votre vite.config.ts avec un bloc test (voir le guide de configuration Vitest) :
/// <reference types="vitest/config" />
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
export default defineConfig({
plugins: [react()],
test: {
globals: true,
environment: 'jsdom',
setupFiles: './src/test/setup.ts',
},
});
Créez ensuite src/test/setup.ts pour activer les matchers DOM :
import '@testing-library/jest-dom/vitest';
Dans App.test.tsx, vérifiez un rendu minimal :
import { describe, it, expect } from 'vitest';
import { render, screen } from '@testing-library/react';
import App from './App';
describe('App', () => {
it('affiche le titre attendu', () => {
render(<App />);
expect(screen.getByRole('heading', { name: /hello world/i })).toBeInTheDocument();
});
});
Lancez la suite en local :
npx vitest
Vitest se distingue surtout lorsque Vite est déjà au cœur du projet :
vite.config centralise build et tests. Avec Jest, il faut souvent dupliquer alias, transformateurs et mocks dans jest.config.Ces différences ne signifient pas que Jest est obsolète : sur un monorepo historique ou un projet Create React App sans migration Vite, Jest reste souvent le choix le plus pragmatique.
Malgré sa maturité croissante, Vitest mérite quelques réserves :
jsdom et Testing Library installés dans le dépôt.test présent dans vite.config et fichier setup.ts pour @testing-library/jest-dom.npx vitest run.vitest run ajoutée au pipeline CI avant merge sur la branche principale.coverage dans Vitest).Approfondissez la qualité de code et la chaîne d'outils avec Biome : alternative rapide à ESLint et Prettier et Développeur et IA : gagner du temps sans perdre le contrôle du code.
Vitest réduit la friction entre développement Vite et tests React : une configuration, une commande en CI et des retours rapides suffisent pour sécuriser les évolutions du front sans alourdir la stack.