Skip to content
Vitest 3
Main Navigation Руководство & APIКонфигурацияРежим браузераРасширенный API
3.2.0
2.1.9
1.6.1
0.34.6

Русский

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

Русский

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

Внешний вид

Sidebar Navigation

Введение

Почему режим браузера

Режим браузера

Конфигурация

Справочник по настройке браузера

Настройка Playwright

Настройка WebdriverIO

API

Context API

Interactivity API

Локаторы

Assertion API

Команды

Руководство

Несколько конфигураций

Настройка Vitest

Справочник по API тестирования

Расширенный API

Содержание страницы

Несколько конфигураций ​

Начиная с Vitest 3, вы можете указывать несколько различных конфигураций браузера, используя новую опцию browser.instances.

Основное преимущество использования browser.instances по сравнению с тестовыми проектами заключается в более эффективном кэшировании. Каждый экземпляр будет использовать один и тот же сервер Vite, что означает, что преобразование файлов и предварительная сборка зависимостей должны происходить только один раз.

Несколько браузеров ​

Вы можете использовать поле browser.instances для задания параметров различных браузеров. Например, если вы хотите запустить одни и те же тесты в разных браузерах, минимальная конфигурация будет следующей:

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

Различные настройки ​

Вы также можете указывать различные параметры конфигурации независимо от выбранного браузера (хотя экземпляры могут также иметь поля 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);
});

В этом примере Vitest запустит все тесты в браузере chromium, но выполнит файл './ratio-setup.ts' только для первой конфигурации и внедрит другое значение ratio в зависимости от поля provide.

WARNING

Обратите внимание, что вам нужно определить пользовательское значение name, если вы используете одно и то же имя браузера, потому что в противном случае Vitest назначит browser в качестве имени проекта.

Фильтрация ​

Вы можете отфильтровать проекты для запуска с помощью флага --project. Vitest автоматически присвоит имя браузера имени проекта, если оно не назначено вручную. Если основная конфигурация уже имеет имя, Vitest объединит их: custom -> custom (browser).

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

WARNING

Vitest не может запускать несколько экземпляров, где режим headless установлен на false (по умолчанию headless включен). Во время разработки вы можете выбрать, какой проект запускать в терминале:

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

Если у вас есть несколько проектов, не использующих режим headless, в CI (т.е. headless: false установлено вручную в конфигурации и не переопределено в среде CI), Vitest завершится с ошибкой и не запустит никаких тестов.

Возможность запуска тестов в режиме headless не затрагивается этим ограничением. Вы по-прежнему можете запускать все инстансы параллельно, при условии, что для них не задано headless: false.

Pager
Предыдущая страницаКоманды
Следующая страницаНастройка Vitest

Выпущено на условиях лицензии MIT.

Авторские права (c) 2021-Present Vitest Team

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

Выпущено на условиях лицензии MIT.

Авторские права (c) 2021-Present Vitest Team