Böngésző konfigurációs referencia
A böngésző konfigurációját a konfigurációs fájl test.browser mezőjének frissítésével módosíthatja. Íme egy példa egy egyszerű konfigurációs fájlra:
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
browser: {
enabled: true,
provider: 'playwright',
instances: [
{
browser: 'chromium',
setupFile: './chromium-setup.js',
},
],
},
},
});Kérjük, nézze meg a "Konfigurációs referencia" cikket a különböző konfigurációs példákért.
WARNING
Az ezen az oldalon felsorolt összes opció a konfiguráción belüli test tulajdonságban található:
export default defineConfig({
test: {
browser: {},
},
});browser.enabled
- Típus:
boolean - Alapértelmezett:
false - CLI:
--browser,--browser.enabled=false
Alapértelmezés szerint minden tesztet böngészőben futtat. Ne feledje, hogy a --browser csak akkor működik, ha legalább egy browser.instances elemmel rendelkezik.
browser.instances
- Típus:
BrowserConfig - Alapértelmezett:
[{ browser: name }]
Több böngészőbeállítást határoz meg. Minden konfigurációnak legalább egy browser mezővel kell rendelkeznie. A konfiguráció támogatja a szolgáltatói konfigurációkat:
TIP
A beépített szolgáltatók használatakor a jobb típusbiztonság érdekében az alábbi típusok egyikére (az Ön által használt szolgáltatóhoz) kell hivatkoznia a konfigurációs fájlban:
/// <reference types="@vitest/browser/providers/playwright" />
/// <reference types="@vitest/browser/providers/webdriverio" />Ezen felül megadhatja a projektbeállítások többségét (amelyek nincsenek * ikonnal jelölve) és néhány browser opciót, mint például a browser.testerHtmlPath.
WARNING
Minden böngésző konfiguráció örökli a beállításokat a gyökér konfigurációból:
export default defineConfig({
test: {
setupFile: ['./root-setup-file.js'],
browser: {
enabled: true,
testerHtmlPath: './custom-path.html',
instances: [
{
// mindkét beállítási fájl meglesz: "root" és "browser"
setupFile: ['./browser-setup-file.js'],
// implicit módon örökli a "testerHtmlPath"-t a gyökér konfigurációból
// testerHtmlPath: './custom-path.html',
},
],
},
},
})Fejlesztés közben a Vitest csak egy nem headless konfigurációt támogat. A headed projektet saját maga korlátozhatja a headless: false megadásával a konfigurációban, vagy a --browser.headless=false kapcsoló használatával, vagy a projektek szűrésével a --project=chromium kapcsoló segítségével.
További példákért lásd a "Több beállítás" útmutatót.
Elérhető browser opciók listája:
browser.headlessbrowser.locatorsbrowser.viewportbrowser.testerHtmlPathbrowser.screenshotDirectorybrowser.screenshotFailures
Alapértelmezés szerint a Vitest egy elemű tömböt hoz létre, amely a browser.name mezőt használja browser-ként. Vegye figyelembe, hogy ez a viselkedés a Vitest 4-gyel eltávolításra kerül.
A háttérben a Vitest ezeket a példányokat külön teszt projektekké alakítja, egyetlen Vite szervert használva a jobb gyorsítótárazási teljesítmény érdekében.
browser.name elavult
- Típus:
string - CLI:
--browser=safari
ELAVULT
Ez az API elavult, és a Vitest 4-ben eltávolításra kerül. Kérjük, helyette a browser.instances opciót használja.
Minden tesztet egy adott böngészőben futtat. Lehetséges opciók különböző szolgáltatóknál:
webdriverio:firefox,chrome,edge,safari- egyéni: bármilyen string, amely a szolgáltatónak átadásra kerül
- custom: bármilyen string, amely átadásra kerül a provider-nek
browser.headless
- Típus:
boolean - Alapértelmezett:
process.env.CI - CLI:
--browser.headless,--browser.headless=false
A böngésző futtatása headless módban. Ha a Vitest-et CI-ben futtatja, alapértelmezés szerint engedélyezve lesz.
browser.isolate
- Típus:
boolean - Alapértelmezett:
true - CLI:
--browser.isolate,--browser.isolate=false
Minden teszt külön iframe-ben fut.
browser.testerHtmlPath
- Típus:
string
A HTML induló pontjának elérési útja. Lehet relatív a projekt gyökeréhez képest. Ezt a fájlt a transformIndexHtml hook dolgozza fel.
browser.api
- Típus:
number | { port?, strictPort?, host? } - Alapértelmezett:
63315 - CLI:
--browser.api=63315,--browser.api.port=1234, --browser.api.host=example.com
A böngészőben futó kódot kiszolgáló Vite szerver beállításainak konfigurálása. Nem befolyásolja a test.api opciót. Alapértelmezés szerint a Vitest a 63315 portot rendeli hozzá, hogy elkerülje a fejlesztői szerverrel való ütközéseket, lehetővé téve mindkettő párhuzamos futtatását.
browser.provider
- Típus:
'webdriverio' | 'playwright' | 'preview' | string - Alapértelmezett:
'preview' - CLI:
--browser.provider=playwright
A szolgáltató elérési útja, amelyet a böngésző tesztek futtatásakor használni fog. A Vitest három szolgáltatót biztosít: preview (alapértelmezett), webdriverio és playwright. Az egyéni szolgáltatókat default exporttal kell exportálni, és az alábbi formát kell követniük:
export interface BrowserProvider {
name: string;
supportsParallelism: boolean;
getSupportedBrowsers: () => readonly string[];
beforeCommand?: (command: string, args: unknown[]) => Awaitable<void>;
afterCommand?: (command: string, args: unknown[]) => Awaitable<void>;
getCommandsContext: (sessionId: string) => Record<string, unknown>;
openPage: (
sessionId: string,
url: string,
beforeNavigate?: () => Promise<void>
) => Promise<void>;
getCDPSession?: (sessionId: string) => Promise<CDPSession>;
close: () => Awaitable<void>;
initialize(
ctx: TestProject,
options: BrowserProviderInitializationOptions
): Awaitable<void>;
}HALADÓ API
Az egyéni szolgáltató API nagyon kísérleti jellegű, és a javítások során változhat. Ha csak böngészőben kell teszteket futtatnia, inkább használja a browser.instances opciót.
browser.providerOptions elavult
- Típus:
BrowserProviderOptions
ELAVULT
Ez az API elavult, és a Vitest 4-ben eltávolításra kerül. Kérjük, helyette a browser.instances opciót használja.
Azok az opciók, amelyek a provider.initialize hívásakor átadódnak a szolgáltatónak.
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
browser: {
providerOptions: {
launch: {
devtools: true,
},
},
},
},
});TIP
A beépített szolgáltatók használatakor a jobb típusbiztonság érdekében az alábbi típusok egyikére (az Ön által használt szolgáltatóhoz) kell hivatkoznia a konfigurációs fájlban:
/// <reference types="@vitest/browser/providers/playwright" />
/// <reference types="@vitest/browser/providers/webdriverio" />browser.ui
- Típus:
boolean - Alapértelmezett:
!isCI - CLI:
--browser.ui=false
Be kell-e illeszteni a Vitest UI-t az oldalba. Alapértelmezés szerint fejlesztés közben injektálja az UI iframe-et.
browser.viewport
- Típus:
{ width, height } - Alapértelmezett:
414x896
Az iframe alapértelmezett megjelenítési területe.
browser.locators
Beépített böngésző lokátorok beállításai.
browser.locators.testIdAttribute
- Típus:
string - Alapértelmezett:
data-testid
Az attribútum, amelyet a getByTestId lokátorral történő elemek keresésére használnak.
browser.screenshotDirectory
- Típus:
string - Alapértelmezett:
__screenshots__a tesztfájl könyvtárában
A képernyőképek könyvtárának elérési útja a root-hoz képest.
browser.screenshotFailures
- Típus:
boolean - Alapértelmezett:
!browser.ui
Készítsen-e a Vitest képernyőképeket, ha a teszt sikertelen.
browser.orchestratorScripts
- Típus:
BrowserScript[] - Alapértelmezett:
[]
Egyéni szkriptek, amelyeket a vezérlő HTML-be kell injektálni a teszt iframe-ek inicializálása előtt. Ez a HTML dokumentum csak az iframe-eket állítja be, és valójában nem importálja a kódot.
A szkript src és content értékeit a Vite bővítmények dolgozzák fel. A szkriptet a következő formában kell megadni:
export interface BrowserScript {
/**
* Ha "content" meg van adva és a típus "module", ez lesz az azonosítója.
*
* Ha TypeScript-et használ, itt hozzáadhatja például a `.ts` kiterjesztést.
* @default `injected-${index}.js`
*/
id?: string;
/**
* Injektálandó JavaScript tartalom. Ezt a stringet a Vite bővítmények dolgozzák fel, ha a típus "module".
*
* Az `id` segítségével adhat tippet a Vite-nek a fájlkiterjesztésről.
*/
content?: string;
/**
* A szkript elérési útja. Ezt az értéket a Vite feloldja, így lehet node modul vagy fájl elérési út.
*/
src?: string;
/**
* Ha a szkriptet aszinkron módon kell betölteni.
*/
async?: boolean;
/**
* Szkript típusa.
* @default 'module'
*/
type?: string;
}browser.testerScripts
- Típus:
BrowserScript[] - Alapértelmezett:
[]
ELAVULT
Ez az API elavult, és a Vitest 4-ben eltávolításra kerül. Kérjük, helyette a browser.testerHtmlPath mezőt használja.
Egyéni szkriptek, amelyeket a tesztelő HTML-be kell injektálni a tesztkörnyezet inicializálása előtt. Ez hasznos a Vitest böngésző implementációjához szükséges polyfill-ek injektálásához. Szinte minden esetben a setupFiles használata javasolt ez helyett.
A szkript src és content értékeit a Vite bővítmények dolgozzák fel.
browser.commands
- Típus:
Record<string, BrowserCommand> - Alapértelmezett:
{ readFile, writeFile, ... }
Egyéni parancsok, amelyek a böngésző tesztek során importálhatók a @vitest/browser/commands modulból.
browser.connectTimeout
- Típus:
number - Alapértelmezett:
60_000
Az időtúllépés milliszekundumban. Ha a böngészőhöz való csatlakozás tovább tart, a tesztcsomag sikertelen lesz.
INFO
Ez az az idő, ameddig a böngészőnek létre kell hoznia a WebSocket kapcsolatot a Vitest szerverrel. Normál körülmények között ezt az időtúllépést soha nem szabad elérni.