Skip to content
Vitest 3
Main Navigation Guida & APIConfigurazioneModalità BrowserAPI avanzata
3.2.0
2.1.9
1.6.1
0.34.6

Italiano

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

Italiano

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

Aspetto

Sidebar Navigation

Introduzione

Perché la modalità browser

Modalità Browser

Configurazione

Riferimento alla Configurazione del Browser

Configurazione di Playwright

Configurazione di WebdriverIO

API

API del Contesto

API di Interazione

Localizzatori

API di Asserzione

Comandi

Guida

Configurazioni Multiple

Configurazione di Vitest

Riferimento API di test

API Avanzate

In questa pagina

Configurazioni Multiple ​

A partire da Vitest 3, è possibile specificare diverse configurazioni del browser utilizzando la nuova opzione browser.instances.

Il vantaggio principale dell'utilizzo di browser.instances rispetto ai progetti di test è un miglioramento del caching. Ogni progetto utilizzerà lo stesso server Vite, il che significa che la trasformazione dei file e il pre-bundling delle dipendenze avverranno una sola volta.

Browser Diversi ​

È possibile utilizzare il campo browser.instances per specificare le opzioni per diversi browser. Ad esempio, se si desidera eseguire gli stessi test in browser diversi, la configurazione minima avrà questo aspetto:

ts
import { defineConfig } from 'vitest/config';
export default defineConfig({
  test: {
    browser: {
      enabled: true,
      provider: 'playwright',
      headless: true,
      instances: [
        { browser: 'chromium' },
        { browser: 'firefox' },
        { browser: 'webkit' },
      ],
    },
  },
});

Diverse Configurazioni ​

È anche possibile specificare diverse opzioni di configurazione indipendentemente dal browser (sebbene le istanze possano anche includere campi browser):

ts
import { defineConfig } from 'vitest/config';
export default defineConfig({
  test: {
    browser: {
      enabled: true,
      provider: 'playwright',
      headless: true,
      instances: [
        {
          browser: 'chromium',
          name: 'chromium-1',
          setupFiles: ['./ratio-setup.ts'],
          provide: {
            ratio: 1,
          },
        },
        {
          browser: 'chromium',
          name: 'chromium-2',
          provide: {
            ratio: 2,
          },
        },
      ],
    },
  },
});
ts
import { expect, inject, test } from 'vitest';
import { globalSetupModifier } from './example.js';

test('ratio works', () => {
  expect(inject('ratio') * globalSetupModifier).toBe(14);
});

In questo esempio, Vitest eseguirà tutti i test utilizzando il browser chromium, ma eseguirà il file './ratio-setup.ts' solo nella prima configurazione e inietterà un valore di ratio diverso a seconda del campo provide.

WARNING

È importante definire un valore name personalizzato se si utilizza lo stesso nome del browser, altrimenti Vitest assegnerà il nome del browser come nome del progetto.

Filtro ​

È possibile filtrare quali progetti eseguire con il flag --project. Vitest assegnerà automaticamente il nome del browser come nome del progetto se quest'ultimo non è assegnato manualmente. Se la configurazione root ha già un nome, Vitest li combinerà: custom -> custom (browser).

shell
$ vitest --project=chromium
ts
export default defineConfig({
  test: {
    browser: {
      instances: [
        // name: chromium
        { browser: 'chromium' },
        // name: custom
        { browser: 'firefox', name: 'custom' },
      ]
    }
  }
})
ts
export default defineConfig({
  test: {
    name: 'custom',
    browser: {
      instances: [
        // name: custom (chromium)
        { browser: 'chromium' },
        // name: manual
        { browser: 'firefox', name: 'manual' },
      ]
    }
  }
})

WARNING

Vitest non può eseguire più istanze con la modalità headless impostata su false (questo è il comportamento predefinito). Durante lo sviluppo, è possibile selezionare quale progetto eseguire nel terminale:

shell
? Found multiple projects that run browser tests in headed mode: "chromium", "firefox".
Vitest cannot run multiple headed browsers at the same time. Select a single project
to run or cancel and run tests with "headless: true" option. Note that you can also
start tests with --browser=name or --project=name flag. › - Use arrow-keys. Return to submit.
❯   chromium
    firefox

Se si hanno diversi progetti non-headless in CI (cioè headless: false è impostato manualmente nella configurazione e non sovrascritto nell'ambiente CI), Vitest causerà il fallimento dell'esecuzione e non avvierà alcun test.

La capacità di eseguire test in modalità headless non ne è influenzata. È comunque possibile eseguire tutte le istanze in parallelo a condizione che non siano configurate con headless: false.

Pager
Pagina precedenteComandi
Pagina successivaConfigurazione di Vitest

Rilasciato sotto la licenza MIT.

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/guide/browser/multiple-setups

Rilasciato sotto la licenza MIT.

Copyright (c) 2021-Present Vitest Team