TECHNOLOGIES

Vitest, notre framework de tests JavaScript de référence

Vitest est un framework de test unitaire JavaScript natif de l'écosystème Vite. Rapide, compatible avec l'API Jest et intégré nativement avec Vue 3, il est devenu notre standard pour tester les composants et la logique métier côté frontend.

Nous avons migré nos suites de tests Jest existantes vers Vitest sur l'ensemble de nos projets Vue.js → une migration rapide aux gains durables.

Vitest

PRÉSENTATION

Qu'est-ce que Vitest ?

Vitest est un framework de test unitaire conçu pour l'écosystème Vite. Il reprend l'API de Jest (describe, it, expect) pour faciliter la migration, tout en tirant parti de l'architecture Vite pour offrir un démarrage instantané et un mode watch ultra-réactif.

Là où Jest nécessite une configuration Babel séparée pour comprendre TypeScript et les imports ESM, Vitest réutilise directement vite.config.ts. Il n'y a qu'une seule source de vérité pour la configuration de build et de test.

Vitest s'intègre nativement avec @vue/test-utils : les composants Vue 3, les composables et les stores Pinia se testent sans surcharge de configuration.

Logo Vitest

POURQUOI VITEST

Ce qui en fait notre standard de test JavaScript

Vitest remplace Jest sur tous nos projets Vue.js. Voici les raisons qui ont motivé ce choix et les bénéfices concrets au quotidien.

Vitesse d'exécution

Vitest s'appuie sur Vite pour la transpilation : pas de démarrage lent, pas de configuration Babel distincte. Les tests démarrent en millisecondes et le mode watch relance uniquement les fichiers impactés par la modification.

Compatible avec l'API Jest

Vitest reprend l'API de Jest : describe, it, expect, vi.mock… La majorité des suites de tests existantes fonctionnent sans réécriture, ce qui rend la migration rapide.

Intégration native Vue 3

Vitest s'intègre parfaitement avec @vue/test-utils et le plugin Vue de Vite. Les composants script setup, les composables et les stores Pinia sont testables sans configuration supplémentaire.

TypeScript de première classe

Vitest gère TypeScript nativement via Vite, sans plugin ou transpilateur supplémentaire. Les types sont vérifiés à la volée et les erreurs apparaissent directement dans les résultats de test.

Coverage intégré

La couverture de code est disponible via @vitest/coverage-v8 ou Istanbul, sans configuration supplémentaire. Le rapport est généré en HTML, JSON et LCOV pour l'intégration dans GitLab CI.

Cohérence avec l'outillage Vite

Vitest partage la configuration vite.config.ts du projet. Les alias, les plugins et les variables d'environnement définis pour l'application sont disponibles dans les tests sans duplication de configuration.

MIGRATION

Migrer de Jest à Vitest

Vitest est devenu notre nouvelle référence pour les tests JavaScript. Nous avons migré nos suites de tests Jest vers Vitest sur nos projets Vue.js et les gains ont été immédiats : vitesse, cohérence de configuration et meilleure intégration avec l'outillage Vite existant.

Temps de démarrage divisé par 3 à 5

Sur nos projets, le passage de Jest à Vitest a réduit le temps de démarrage de la suite de tests de façon significative grâce à l'architecture Vite qui n'exige pas de pré-compilation complète avant le premier test.

Migration quasi transparente

La compatibilité avec l'API Jest signifie que la quasi-totalité des tests fonctionne après avoir simplement remplacé jest par vitest dans les imports et mis à jour la configuration. Les mocks, les timers et les assertions fonctionnent à l'identique.

Une seule configuration pour tout

Fini la configuration Babel séparée pour Jest. Vitest réutilise vite.config.ts : les alias de modules, les variables d'environnement et les plugins Vite (dont le plugin Vue) sont directement disponibles dans l'environnement de test.

Pour aller plus loin

Documentation utile

Vitest : Documentation officielle

API complète, guides de configuration et intégrations pour Vitest.

Guide de migration Jest → Vitest

Les étapes officielles pour migrer une suite de tests Jest existante vers Vitest.

Pour aller plus loin

Approfondir votre réflexion

Vue.js

Vitest est notre framework de tests de référence pour les projets Vue.js. Son intégration native avec Vite le rend particulièrement adapté à cet écosystème.

Développement de logiciel sur mesure

Les tests automatisés font partie intégrante de notre processus de développement : ils garantissent la robustesse des fonctionnalités livrées.

TMA — Maintenance logicielle évolutive

Une couverture de tests solide avec Vitest est un prérequis pour sécuriser les évolutions d'un projet en phase de maintenance.