Настройка Playwright
По умолчанию TypeScript не распознает опции провайдеров и дополнительные свойства expect. Убедитесь, что вы ссылаетесь на @vitest/browser/providers/playwright, чтобы TypeScript мог получить определения для пользовательских опций:
/// <reference types="@vitest/browser/providers/playwright" />В качестве альтернативы вы также можете добавить это в поле compilerOptions.types в вашем файле tsconfig.json. Обратите внимание, что любое указание в этом поле отключит автоматическую загрузку пакетов @types/*.
{
"compilerOptions": {
"types": ["@vitest/browser/providers/playwright"]
}
}Vitest использует одну страницу для запуска всех тестов в одном файле. Вы можете настроить свойства launch, connect и context в instances:
import { defineConfig } from 'vitest/config'
export default defineConfig({
test: {
browser: {
instances: [
{
browser: 'firefox',
launch: {},
connect: {},
context: {},
},
],
},
},
})WARNING
До Vitest 3 эти опции находились в свойстве test.browser.providerOptions:
export default defineConfig({
test: {
browser: {
providerOptions: {
launch: {},
context: {},
},
},
},
});providerOptions устарело и заменено на instances.
launch
Эти опции напрямую передаются в команду playwright[browser].launch. Вы можете узнать больше о команде и доступных аргументах в документации Playwright.
WARNING
Vitest игнорирует опцию launch.headless. Вместо этого используйте test.browser.headless.
Обратите внимание, что Vitest добавляет отладочные флаги в launch.args, если включен --inspect.
connect 3.2.0+
Эти опции напрямую передаются в команду playwright[browser].connect. Вы можете узнать больше о команде и доступных аргументах в документации Playwright.
WARNING
Поскольку эта команда подключается к существующему серверу Playwright, любые опции launch будут проигнорированы.
context
Vitest создает новый контекст для каждого тестового файла, вызывая метод browser.newContext(). Вы можете настроить это поведение, указав пользовательские аргументы.
TIP
Обратите внимание, что контекст создается для каждого тестового файла, а не для каждого теста, в отличие от тестового раннера Playwright.
WARNING
Vitest всегда устанавливает ignoreHTTPSErrors в true, если ваш сервер обслуживается по HTTPS, и serviceWorkers в 'allow' для поддержки мокирования модулей через MSW.
Также рекомендуется использовать test.browser.viewport вместо его указания здесь, так как он теряется при запуске тестов в безголовом режиме.
actionTimeout 3.0.0+
- По умолчанию: нет таймаута, 1 секунда до 3.0.0
Это значение настраивает таймаут по умолчанию, в течение которого Playwright ожидает завершения всех проверок доступности и выполнения действия.
Вы также можете настроить таймаут для каждого действия отдельно:
import { page, userEvent } from '@vitest/browser/context';
await userEvent.click(page.getByRole('button'), {
timeout: 1_000,
});