Konfigurowanie Playwright
Domyślnie, TypeScript nie rozpoznaje opcji dostawców i dodatkowych właściwości expect
. Upewnij się, że odwołujesz się do @vitest/browser/providers/playwright
, aby TypeScript mógł pobrać definicje niestandardowych opcji:
/// <reference types="@vitest/browser/providers/playwright" />
Alternatywnie, możesz również dodać to do pola compilerOptions.types
w pliku tsconfig.json
. Należy pamiętać, że określenie czegokolwiek w tym polu wyłączy automatyczne ładowanie pakietów @types/*
.
{
"compilerOptions": {
"types": ["@vitest/browser/providers/playwright"]
}
}
Vitest otwiera jedną stronę, aby uruchomić wszystkie testy z danego pliku. Możesz skonfigurować właściwości launch
, connect
i context
w instances
:
import { defineConfig } from 'vitest/config'
export default defineConfig({
test: {
browser: {
instances: [
{
browser: 'firefox',
launch: {},
connect: {},
context: {},
},
],
},
},
})
WARNING
Przed Vitest 3 te opcje znajdowały się we właściwości test.browser.providerOptions
:
export default defineConfig({
test: {
browser: {
providerOptions: {
launch: {},
context: {},
},
},
},
});
providerOptions
jest przestarzałe i zastąpione przez instances
.
launch
Te opcje są bezpośrednio przekazywane do polecenia playwright[browser].launch
. Więcej informacji na temat polecenia i dostępnych argumentów można znaleźć w dokumentacji Playwright.
WARNING
Vitest ignoruje opcję launch.headless
. Zamiast tego zaleca się użycie test.browser.headless
.
Należy pamiętać, że Vitest doda flagi debugowania do launch.args
, jeśli --inspect
jest włączone.
connect 3.2.0+
Te opcje są bezpośrednio przekazywane do polecenia playwright[browser].connect
. Więcej informacji na temat polecenia i dostępnych argumentów można znaleźć w dokumentacji Playwright.
WARNING
Ponieważ to polecenie łączy się z już działającym serwerem Playwright, wszelkie opcje launch
zostaną zignorowane.
context
Vitest tworzy osobny kontekst dla każdego pliku testowego, poprzez wywołanie browser.newContext()
. Możesz skonfigurować to zachowanie, określając niestandardowe argumenty.
TIP
Należy pamiętać, że kontekst jest tworzony dla każdego pliku testowego, a nie dla każdego testu, jak w runnerze testów Playwright.
WARNING
Vitest zawsze ustawia ignoreHTTPSErrors
na true
(gdy Twój serwer używa HTTPS) oraz serviceWorkers
na 'allow'
, aby wspierać mockowanie modułów za pomocą MSW.
Zaleca się również użycie test.browser.viewport
zamiast określania go w tym miejscu, ponieważ zostanie utracony, gdy testy będą uruchamiane w trybie headless.
actionTimeout
3.0.0+
- Domyślnie: brak limitu czasu (przed wersją 3.0.0 wynosił 1 sekundę)
Ta wartość określa domyślny limit czasu, przez jaki Playwright czeka na zakończenie wszystkich sprawdzeń dostępności i faktyczne wykonanie akcji.
Możesz również skonfigurować limit czasu indywidualnie dla każdej akcji:
import { page, userEvent } from '@vitest/browser/context';
await userEvent.click(page.getByRole('button'), {
timeout: 1_000,
});