Skip to content
Vitest 3
Main Navigation Průvodce & APIKonfiguraceRežim prohlížečePokročilé API
3.2.0
2.1.9
1.6.1
0.34.6

čeština

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

čeština

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

Vzhled

Sidebar Navigation

Úvod

Proč režim prohlížeče

Režim prohlížeče

Konfigurace

Odkaz na konfiguraci prohlížeče

Konfigurace Playwrightu

Konfigurace WebdriverIO

API

Context API

Interaktivní API

Lokátory

Assertion API

Příkazy

Průvodce

Více nastavení

Konfigurace Vitestu

Testovací reference API

Rozšířené API

Na této stránce

Více nastavení ​

Od Vitestu 3 můžete specifikovat několik různých nastavení prohlížeče pomocí nové možnosti browser.instances.

Hlavní výhoda použití browser.instances oproti testovacím projektům spočívá ve vylepšeném ukládání do mezipaměti. Každý projekt bude používat stejný Vite server, což znamená, že transformace souborů a předbalení závislostí se musí provést pouze jednou.

Několik prohlížečů ​

Pole browser.instances můžete použít k určení možností pro různé prohlížeče. Například, pokud chcete spustit stejné testy v různých prohlížečích, minimální konfigurace vypadá takto:

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

Různá nastavení ​

Také můžete specifikovat různé možnosti konfigurace nezávisle na prohlížeči (ačkoliv, instance mohou mít rovněž pole 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);
});

V tomto příkladu Vitest spustí všechny testy v prohlížeči chromium, ale soubor './ratio-setup.ts' se spustí pouze v první konfiguraci a poskytne jinou hodnotu ratio v závislosti na poli provide.

WARNING

Pozor: Pokud používáte stejný název prohlížeče, musíte definovat vlastní hodnotu name, protože Vitest jinak přiřadí browser jako název projektu.

Filtrování ​

Můžete filtrovat, které projekty se mají spustit, pomocí příznaku --project. Vitest automaticky použije název prohlížeče jako název projektu, pokud není ručně přiřazen. Pokud má hlavní konfigurace již název, Vitest je sloučí: custom -> custom (browser).

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

WARNING

Vitest nemůže spustit více instancí, které mají headless režim nastavený na false (výchozí chování). Během vývoje si můžete v terminálu vybrat projekt ke spuštění:

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

Pokud máte v CI několik projektů s nastavením headless: false (tj. headless: false je ručně nastaveno v konfiguraci a není přepsáno v CI prostředí), Vitest selže a nespustí žádné testy.

Schopnost spouštět testy v headless režimu tímto není dotčena. Stále můžete spouštět všechny instance paralelně, pokud u nich není nastaveno headless: false.

Pager
Předchozí stránkaPříkazy
Další stránkaKonfigurace Vitestu

Vydáno pod licencí MIT.

Copyright (c) 2021-Present Vitest Team

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

Vydáno pod licencí MIT.

Copyright (c) 2021-Present Vitest Team