Skip to content
Vitest 3
Main Navigation Guide & APIConfigurationMode NavigateurAPI avancée
3.2.0
2.1.9
1.6.1
0.34.6

Français

English
简体中文
繁體中文
Español
Русский
Português – Brasil
Deutsch
日本語
한국어
Italiano
Polski
Türkçe
čeština
magyar

Français

English
简体中文
繁體中文
Español
Русский
Português – Brasil
Deutsch
日本語
한국어
Italiano
Polski
Türkçe
čeština
magyar

Apparence

Sidebar Navigation

Introduction

Pourquoi le mode navigateur

Mode Navigateur

Configuration

Référence de configuration du navigateur

Configuration de Playwright

Configuration de WebdriverIO

API

API du Contexte

API d'interactivité

Localisateurs

API d'assertions

Commandes

Guide

Configurations Multiples

Configuration de Vitest

Référence de l'API des Tests

API avancée

Sur cette page

Référence de configuration du navigateur ​

Vous pouvez modifier la configuration du navigateur en mettant à jour le champ test.browser dans votre fichier de configuration. Voici un exemple de fichier de configuration simple :

ts
import { defineConfig } from 'vitest/config';

export default defineConfig({
  test: {
    browser: {
      enabled: true,
      provider: 'playwright',
      instances: [
        {
          browser: 'chromium',
          setupFile: './chromium-setup.js',
        },
      ],
    },
  },
});

Veuillez consulter l'article "Référence de configuration" pour des exemples de configuration variés.

WARNING

Toutes les options listées sur cette page se trouvent dans une propriété test à l'intérieur de la configuration :

ts
export default defineConfig({
  test: {
    browser: {},
  },
});

browser.enabled ​

  • Type : boolean
  • Par défaut : false
  • CLI : --browser, --browser.enabled=false

Exécute par défaut tous les tests dans un navigateur. Notez que --browser ne fonctionne que si vous avez au moins un élément browser.instances configuré.

browser.instances ​

  • Type : BrowserConfig[]
  • Par défaut : [{ browser: name }]

Définit plusieurs configurations de navigateurs. Chaque configuration doit comporter au moins un champ browser. La configuration prend en charge les configurations spécifiques à vos fournisseurs :

  • Configuration de Playwright
  • Configuration de WebdriverIO

TIP

Pour une meilleure vérification des types lors de l'utilisation des fournisseurs intégrés, vous devez référencer l'un de ces types (pour le fournisseur que vous utilisez) dans votre fichier de configuration :

ts
/// <reference types="@vitest/browser/providers/playwright" />
/// <reference types="@vitest/browser/providers/webdriverio" />

De plus, vous pouvez également spécifier la plupart des options de projet (non marquées d'une icône *) et certaines des options browser comme browser.testerHtmlPath.

WARNING

Chaque configuration de navigateur hérite des options de la configuration racine :

ts
export default defineConfig({
  test: {
    setupFile: ['./root-setup-file.js'],
    browser: {
      enabled: true,
      testerHtmlPath: './custom-path.html',
      instances: [
        {
          // aura les deux fichiers de configuration : "root" et "browser"
          setupFile: ['./browser-setup-file.js'],
          // hérite implicitement de "testerHtmlPath" depuis la configuration racine
          // testerHtmlPath: './custom-path.html',
        },
      ],
    },
  },
})

Pendant le développement, Vitest ne prend en charge qu'une seule configuration non-headless. Vous pouvez limiter l'utilisation du mode visible (non-headless) pour un projet en spécifiant headless: false dans la configuration, ou en fournissant le drapeau --browser.headless=false, ou en filtrant les projets avec le drapeau --project=chromium.

Pour plus d'exemples, consultez le guide "Configurations multiples" (Multiple Setups).

Liste des options browser disponibles :

  • browser.headless
  • browser.locators
  • browser.viewport
  • browser.testerHtmlPath
  • browser.screenshotDirectory
  • browser.screenshotFailures

Par défaut, Vitest crée un tableau avec un seul élément qui utilise le champ browser.name comme browser. Notez que ce comportement sera supprimé à partir de Vitest 4.

Sous le capot, Vitest transforme ces instances en projets de test distincts partageant un seul serveur Vite pour de meilleures performances de mise en cache.

browser.name déprécié ​

  • Type : string
  • CLI : --browser=safari

DÉPRÉCIÉ

Cette API est dépréciée et sera retirée dans Vitest 4. Veuillez utiliser l'option browser.instances à la place.

Permet d'exécuter tous les tests dans un navigateur spécifique. Valeurs possibles selon les fournisseurs :

  • webdriverio : firefox, chrome, edge, safari
  • playwright : firefox, webkit, chromium
  • personnalisé : toute chaîne qui sera passée au fournisseur

browser.headless ​

  • Type : boolean
  • Par défaut : process.env.CI
  • CLI : --browser.headless, --browser.headless=false

Exécute le navigateur en mode headless (sans interface graphique). Si vous exécutez Vitest en CI, ce mode sera activé par défaut.

browser.isolate ​

  • Type : boolean
  • Par défaut : true
  • CLI : --browser.isolate, --browser.isolate=false

Exécute chaque test dans un iframe séparé.

browser.testerHtmlPath ​

  • Type : string

Le chemin d'accès au point d'entrée HTML. Peut être relatif à la racine du projet. Ce fichier sera traité avec le hook transformIndexHtml.

browser.api ​

  • Type : number | { port?, strictPort?, host? }
  • Par défaut : 63315
  • CLI : --browser.api=63315, --browser.api.port=1234, --browser.api.host=example.com

Configure les options du serveur Vite qui sert le code au navigateur. N'affecte pas l'option test.api. Par défaut, Vitest attribue le port 63315 pour éviter les conflits avec le serveur de développement, vous permettant de les exécuter en parallèle.

browser.provider ​

  • Type : 'webdriverio' | 'playwright' | 'preview' | string
  • Par défaut : 'preview'
  • CLI : --browser.provider=playwright

Le chemin d'accès à un fournisseur qui sera utilisé lors de l'exécution des tests de navigateur. Vitest fournit trois fournisseurs intégrés : preview (par défaut), webdriverio et playwright. Les fournisseurs personnalisés doivent être exportés en utilisant l'exportation default et doivent respecter la forme suivante :

ts
export interface BrowserProvider {
  name: string;
  supportsParallelism: boolean;
  getSupportedBrowsers: () => readonly string[];
  beforeCommand?: (command: string, args: unknown[]) => Awaitable<void>;
  afterCommand?: (command: string, args: unknown[]) => Awaitable<void>;
  getCommandsContext: (sessionId: string) => Record<string, unknown>;
  openPage: (
    sessionId: string,
    url: string,
    beforeNavigate?: () => Promise<void>
  ) => Promise<void>;
  getCDPSession?: (sessionId: string) => Promise<CDPSession>;
  close: () => Awaitable<void>;
  initialize(
    ctx: TestProject,
    options: BrowserProviderInitializationOptions
  ): Awaitable<void>;
}

API AVANCÉE

L'API du fournisseur personnalisé est hautement expérimentale et peut changer d'une version corrective à l'autre. Si vous avez juste besoin d'exécuter des tests dans un navigateur, utilisez plutôt l'option browser.instances.

browser.providerOptions déprécié ​

  • Type : BrowserProviderOptions

DÉPRÉCIÉ

Cette API est dépréciée et sera retirée dans Vitest 4. Veuillez utiliser l'option browser.instances à la place.

Options à transmettre au fournisseur lors de l'appel de provider.initialize.

ts
import { defineConfig } from 'vitest/config';

export default defineConfig({
  test: {
    browser: {
      providerOptions: {
        launch: {
          devtools: true,
        },
      },
    },
  },
});

TIP

Pour une meilleure vérification des types lors de l'utilisation des fournisseurs intégrés, vous devez référencer l'un de ces types (pour le fournisseur que vous utilisez) dans votre fichier de configuration :

ts
/// <reference types="@vitest/browser/providers/playwright" />
/// <reference types="@vitest/browser/providers/webdriverio" />

browser.ui ​

  • Type : boolean
  • Par défaut : !isCI
  • CLI : --browser.ui=false

Indique si l'interface utilisateur de Vitest doit être injectée dans la page. Par défaut, l'iframe de l'interface utilisateur est injectée pendant le développement.

browser.viewport ​

  • Type : { width, height }
  • Par défaut : 414x896

La fenêtre d'affichage par défaut de l'iframe.

browser.locators ​

Options des localisateurs de navigateur intégrés.

browser.locators.testIdAttribute ​

  • Type : string
  • Par défaut : data-testid

Attribut servant à trouver des éléments avec le localisateur getByTestId.

browser.screenshotDirectory ​

  • Type : string
  • Par défaut : __screenshots__ dans le répertoire du fichier de test

Le chemin d'accès au répertoire des captures d'écran, relatif à la root du projet.

browser.screenshotFailures ​

  • Type : boolean
  • Par défaut : !browser.ui

Indique si Vitest doit prendre des captures d'écran en cas d'échec du test.

browser.orchestratorScripts ​

  • Type : BrowserScript[]
  • Par défaut : []

Scripts personnalisés à injecter dans le HTML de l'orchestrateur avant l'initialisation des iframes de test. Ce document HTML ne configure que les iframes et n'inclut pas réellement votre code.

Le src et le content des scripts seront traités par les plugins Vite. Le script doit être fourni sous la forme suivante :

ts
export interface BrowserScript {
  /**
   * Si "content" est fourni et que le type est "module", il servira d'identifiant.
   *
   * Si vous utilisez TypeScript, vous pouvez par exemple ajouter l'extension `.ts` ici.
   * @default `injected-${index}.js`
   */
  id?: string;
  /**
   * Contenu JavaScript à injecter. Les plugins Vite traitent cette chaîne si le type est "module".
   *
   * Vous pouvez utiliser `id` pour fournir à Vite une indication sur l'extension du fichier.
   */
  content?: string;
  /**
   * Le chemin d'accès au script. Cette valeur est résolue par Vite et peut donc pointer vers un module Node ou un fichier local.
   */
  src?: string;
  /**
   * Indique si le script doit être chargé de manière asynchrone.
   */
  async?: boolean;
  /**
   * Type de script.
   * @default 'module'
   */
  type?: string;
}

browser.testerScripts ​

  • Type : BrowserScript[]
  • Par défaut : []

DÉPRÉCIÉ

Cette API est dépréciée et sera retirée dans Vitest 4. Veuillez utiliser le champ browser.testerHtmlPath à la place.

Scripts personnalisés à injecter dans le HTML du testeur avant l'initialisation de l'environnement de test. Ceci est utile pour injecter des polyfills nécessaires à l'implémentation du navigateur Vitest. Il est recommandé d'utiliser setupFiles dans presque tous les cas, plutôt que cette option.

Le src et le content des scripts seront traités par les plugins Vite.

browser.commands ​

  • Type : Record<string, BrowserCommand>
  • Par défaut : { readFile, writeFile, ... }

Commandes personnalisées importables pendant les tests de navigateur depuis @vitest/browser/commands.

browser.connectTimeout ​

  • Type : number
  • Par défaut : 60_000

Le délai d'attente, en millisecondes. Si la connexion au navigateur prend plus de temps, la suite de tests échouera.

INFO

Il s'agit du temps nécessaire au navigateur pour établir la connexion WebSocket avec le serveur Vitest. Dans des circonstances normales, ce délai ne devrait jamais être dépassé.

Pager
Page précédenteMode Navigateur
Page suivanteConfiguration de Playwright

Publié sous la licence MIT.

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/guide/browser/config

Publié sous la licence MIT.

Copyright (c) 2021-Present Vitest Team