📧 Reste informé(e) !

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

S'inscrire gratuitement

~1 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 :
✅ Exit Karma et Jasmine
✅ Place à Vitest, rapide, moderne et compatible avec le nouveau mode zoneless

É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

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

// Pour éviter de le faire dans chaque test
@NgModule({
  providers: [provideZonelessChangeDetection()],
})
class ZonelessModule {
}

getTestBed().initTestEnvironment(
[BrowserTestingModule, ZonelessModule],
platformBrowserTesting(),
);

É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


✅ Angular v20
✅ Vitest ultra rapide
✅ Tests zoneless
✅ Setup prêt à l’emploi


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.