📧 Reste informé(e) !

Reçois les derniers articles et conseils EasyAngularKit directement dans ta boîte mail.

S'inscrire gratuitement

~2 min de lecture

Vitest Angular 20 : le guide d'installation complet

Vitest Angular 20 : découvrez comment configurer Vitest avec Angular 20 pour des tests ultra-rapides et modernes. Ce guide complet vous accompagne étape par étape.

Avec Angular 20, le moment est parfait pour faire le grand ménage dans vos tests.

Objectif : sortir Karma et Jasmine, et passer à Vitest, rapide, moderne et compatible avec le nouveau mode zoneless.

Tu migres un projet existant ? On a un guide dédié aux équivalences Jasmine et au remplacement de Karma : Karma to Vitest.

Étape 1 - Désinstaller les anciennes dépendances

On commence par dire adieu aux outils historiques :

npm uninstall \
  @types/jasmine jasmine-core karma \
  karma-chrome-launcher karma-coverage \
  karma-jasmine karma-jasmine-html-reporter

ou

pnpm remove \
  @types/jasmine jasmine-core karma \
  karma-chrome-launcher karma-coverage \
  karma-jasmine karma-jasmine-html-reporter

Étape 2 - Installer Vitest et les plugins Angular

npm install -D \
  vitest jsdom \
  @analogjs/vitest-angular \
  @analogjs/vite-plugin-angular

ou

pnpm add -D \
  vitest jsdom \
  @analogjs/vitest-angular \
  @analogjs/vite-plugin-angular

Étape 3 - Créer le fichier vitest.config.mts

/// <reference types="vitest" />
import { defineConfig } from 'vite';
import angular from '@analogjs/vite-plugin-angular';

export default defineConfig(({ mode }) => ({
  plugins: [angular()],
  test: {
    globals: true,
    setupFiles: ['src/test-setup.ts'],
    environment: 'jsdom',
    include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
    reporters: ['default'],
  },
  define: {
    'import.meta.vitest': mode !== 'production',
  },
}));

Étape 4 - Ajouter src/test-setup.ts

Ce fichier initialise l'environnement de test une seule fois. Garde-le minimal : juste l'init via BrowserTestingModule / platformBrowserTesting (l'API moderne).

import '@analogjs/vitest-angular/setup-snapshots';
import '@angular/compiler';
import { BrowserTestingModule, platformBrowserTesting } from '@angular/platform-browser/testing';
import { getTestBed } from '@angular/core/testing';

getTestBed().initTestEnvironment(
  BrowserTestingModule,
  platformBrowserTesting(),
);

Inutile d'envelopper provideZonelessChangeDetection() dans un @NgModule passé à initTestEnvironment. La façon idiomatique est de le fournir par test, dans le TestBed.configureTestingModule({...}) :

import { provideZonelessChangeDetection } from '@angular/core';
import { TestBed } from '@angular/core/testing';

TestBed.configureTestingModule({
  providers: [provideZonelessChangeDetection()],
});

Mieux encore : pour rester iso avec ton app, repars de appConfig.providers (zoneless déjà inclus) comme point de départ à curer. On détaille ce pattern dans le guide config Vitest.

Étape 5 - Modifier tsconfig.spec.json

{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "outDir": "./out-tsc/spec",
    "types": [
      "vitest/globals",
      "node"
    ]
  },
  "files": [
    "src/test-setup.ts"
  ],
  "include": [
    "src/**/*.spec.ts",
    "src/**/*.d.ts"
  ]
}

Étape 6 - Modifier angular.json

{
  "test": {
    "builder": "@analogjs/vitest-angular:test",
    "options": {
      "tsConfig": "tsconfig.spec.json",
      "assets": [
        {
          "glob": "**/*",
          "input": "public"
        }
      ],
      "styles": [
        "src/styles.css"
      ],
      "scripts": []
    }
  }
}

Trop long ? Voici un starter prêt à l'emploi

Pas envie de tout faire à la main ? Je t'ai préparé un starter :

github.com/GaetanRdn/angular-starter-v20

Il embarque Angular v20, Vitest, le mode zoneless et le setup complet, prêt à cloner.


Besoin d'un accompagnement pour apprendre à tester avec Angular et Vitest ?
Découvre notre module dédié aux tests

📧 Reste informé(e) !

Reçois les derniers articles et conseils EasyAngularKit directement dans ta boîte mail.

S'inscrire gratuitement

AngularKit

Suite d'outils pour développeurs Angular francophones. Apprends, modernise tes réflexes, audite ta codebase.

Produits

Contact

Légal

© 2026 AngularKit. Tous droits réservés.