Tarayıcı Yapılandırma Referansı
Tarayıcı yapılandırmasını, yapılandırma dosyanızda test.browser alanını güncelleyerek değiştirebilirsiniz. Basit bir yapılandırma dosyası örneği:
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
browser: {
enabled: true,
provider: 'playwright',
instances: [
{
browser: 'chromium',
setupFile: './chromium-setup.js',
},
],
},
},
});Farklı yapılandırma örnekleri için lütfen "Yapılandırma Referansı" makalesini inceleyin.
WARNING
Bu sayfada listelenen tüm seçenekler yapılandırma içindeki bir test özelliği içinde yer alır:
export default defineConfig({
test: {
browser: {},
},
});browser.enabled
- Tip:
boolean - Varsayılan:
false - CLI:
--browser,--browser.enabled=false
Tüm testler varsayılan olarak bir tarayıcı içinde çalıştırılır. --browser seçeneğinin yalnızca en az bir browser.instances öğeniz varsa çalıştığını unutmayın.
browser.instances
- Tip:
BrowserConfig - Varsayılan:
[{ browser: name }]
Birden fazla tarayıcı kurulumunu tanımlar. Her yapılandırmanın en az bir browser alanı içermesi gerekir. Yapılandırma, sağlayıcı yapılandırmalarını destekler:
TIP
Yerleşik sağlayıcıları kullanırken daha iyi tip güvenliği sağlamak için, yapılandırma dosyanızda (kullandığınız sağlayıcıya göre) bu tiplerden birine referans vermelisiniz:
/// <reference types="@vitest/browser/providers/playwright" />
/// <reference types="@vitest/browser/providers/webdriverio" />Buna ek olarak, proje seçeneklerinin çoğunu (* simgesiyle işaretlenmemiş olanlar) ve browser.testerHtmlPath gibi bazı browser seçeneklerini de belirtebilirsiniz.
WARNING
Her tarayıcı yapılandırması, seçenekleri kök yapılandırmadan devralır:
export default defineConfig({
test: {
setupFile: ['./root-setup-file.js'],
browser: {
enabled: true,
testerHtmlPath: './custom-path.html',
instances: [
{
// hem "root" hem de "browser" kurulum dosyalarına sahip olacak
setupFile: ['./browser-setup-file.js'],
// kök yapılandırmadan "testerHtmlPath" değerini örtük olarak alır
// testerHtmlPath: './custom-path.html',
},
],
},
},
})Geliştirme sırasında Vitest, yalnızca bir başsız modda olmayan yapılandırmayı destekler. Görsel arayüzlü projeyi (başsız modda çalışmayan projeyi), yapılandırmada headless: false belirterek veya --browser.headless=false bayrağını sağlayarak veya --project=chromium bayrağıyla projeleri filtreleyerek kendiniz sınırlayabilirsiniz.
Daha fazla örnek için "Çoklu Kurulumlar" kılavuzuna bakın.
Mevcut browser seçeneklerinin listesi:
browser.headlessbrowser.locatorsbrowser.viewportbrowser.testerHtmlPathbrowser.screenshotDirectorybrowser.screenshotFailures
Varsayılan olarak, Vitest, browser.name alanını browser olarak kullanarak tek bir öğe içeren bir dizi oluşturur. Bu davranışın Vitest 4 ile kaldırılacağını unutmayın.
Vitest, arka planda bu örnekleri, daha iyi önbellekleme performansı için tek bir Vite sunucusunu paylaşan ayrı test projelerine dönüştürür.
browser.name kullanımdan kaldırıldı
- Tip:
string - CLI:
--browser=safari
KULLANIMDAN KALDIRILDI
Bu API kullanımdan kaldırılmıştır ve Vitest 4'te kaldırılacak. Lütfen bunun yerine browser.instances seçeneğini kullanın.
Tüm testleri belirli bir tarayıcıda çalıştırın. Farklı sağlayıcılardaki olası seçenekler:
webdriverio:firefox,chrome,edge,safariplaywright:firefox,webkit,chromium- özel: sağlayıcıya iletilecek herhangi bir dize
browser.headless
- Tip:
boolean - Varsayılan:
process.env.CI - CLI:
--browser.headless,--browser.headless=false
Tarayıcı headless modunda çalıştırılır. Vitest'i CI'da çalıştırıyorsanız, varsayılan olarak etkinleştirilecektir.
browser.isolate
- Tip:
boolean - Varsayılan:
true - CLI:
--browser.isolate,--browser.isolate=false
Her test ayrı bir iframe'de çalıştırılır.
browser.testerHtmlPath
- Tip:
string
HTML giriş noktasına giden bir yol. Projenin köküne göreceli olabilir. Bu dosya transformIndexHtml kancasıyla işlenecektir.
browser.api
- Tip:
number | { port?, strictPort?, host? } - Varsayılan:
63315 - CLI:
--browser.api=63315,--browser.api.port=1234, --browser.api.host=example.com
Tarayıcıda kod sunan Vite sunucusu için seçenekler yapılandırılır. test.api seçeneğini etkilemez. Varsayılan olarak, Vitest, geliştirme sunucusuyla çakışmaları önlemek için 63315 numaralı bağlantı noktasını atar ve her ikisini de paralel çalıştırmanıza olanak tanır.
browser.provider
- Tip:
'webdriverio' | 'playwright' | 'preview' | string - Varsayılan:
'preview' - CLI:
--browser.provider=playwright
Tarayıcı testleri çalıştırılırken kullanılacak sağlayıcının yolu. Vitest, preview (varsayılan), webdriverio ve playwright olmak üzere üç sağlayıcı sunar. Özel sağlayıcılar default dışa aktarma kullanılarak dışa aktarılmalı ve şu şekilde olmalıdır:
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>;
}GELİŞMİŞ API
Özel sağlayıcı API'si oldukça deneyseldir ve yamalar arasında değişebilir. Yalnızca bir tarayıcıda test çalıştırmanız gerekiyorsa, bunun yerine browser.instances seçeneğini kullanın.
browser.providerOptions kullanımdan kaldırıldı
- Tip:
BrowserProviderOptions
KULLANIMDAN KALDIRILDI
Bu API kullanımdan kaldırılmıştır ve Vitest 4'te kaldırılacak. Lütfen bunun yerine browser.instances seçeneğini kullanın.
provider.initialize çağrılırken sağlayıcıya iletilecek seçenekler.
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
browser: {
providerOptions: {
launch: {
devtools: true,
},
},
},
},
});TIP
Yerleşik sağlayıcıları kullanırken daha iyi tip güvenliği sağlamak için, yapılandırma dosyanızda bu tiplerden birine (kullandığınız sağlayıcı için) başvurmalısınız:
/// <reference types="@vitest/browser/providers/playwright" />
/// <reference types="@vitest/browser/providers/webdriverio" />browser.ui
- Tip:
boolean - Varsayılan:
!isCI - CLI:
--browser.ui=false
Vitest UI'ın sayfaya enjekte edilip edilmeyeceği. Varsayılan olarak, geliştirme sırasında UI iframe'i enjekte edilir.
browser.viewport
- Tip:
{ width, height } - Varsayılan:
414x896
Varsayılan iframe'in görüntü alanı.
browser.locators
Yerleşik tarayıcı bulucuları için seçenekler.
browser.locators.testIdAttribute
- Tip:
string - Varsayılan:
data-testid
getByTestId bulucusuyla öğeleri bulmak için kullanılan öznitelik.
browser.screenshotDirectory
- Tip:
string - Varsayılan: Test dosyası dizinindeki
__screenshots__
Ekran görüntüleri dizininin root'a göre yolu.
browser.screenshotFailures
- Tip:
boolean - Varsayılan:
!browser.ui
Test başarısız olursa Vitest'in ekran görüntüsü alıp almayacağı.
browser.orchestratorScripts
- Tip:
BrowserScript[] - Varsayılan:
[]
Test iframe'leri başlatılmadan önce düzenleyici HTML'ye enjekte edilmesi gereken özel komut dosyaları. Bu HTML belgesi yalnızca iframe'leri kurar ve kodunuzu gerçekten içe aktarmaz.
Komut dosyasının src ve content özellikleri Vite eklentileri tarafından işlenecektir. Komut dosyası aşağıdaki şekilde sağlanmalıdır:
export interface BrowserScript {
/**
* "content" sağlanırsa ve tür "module" ise, bu onun tanımlayıcısı olacaktır.
*
* TypeScript kullanıyorsanız, buraya örneğin `.ts` uzantısını ekleyebilirsiniz.
* @default `injected-${index}.js`
*/
id?: string;
/**
* Enjekte edilecek JavaScript içeriği. Bu dize, tür "module" ise Vite eklentileri tarafından işlenir.
*
* Vite'a dosya uzantısı hakkında bir ipucu vermek için `id` kullanabilirsiniz.
*/
content?: string;
/**
* Komut dosyasına giden yol. Bu değer Vite tarafından çözülür, bu nedenle bir düğüm modülü veya bir dosya yolu olabilir.
*/
src?: string;
/**
* Komut dosyasının eşzamansız olarak yüklenip yüklenmeyeceği.
*/
async?: boolean;
/**
* Komut dosyası türü.
* @default 'module'
*/
type?: string;
}browser.testerScripts
- Tip:
BrowserScript[] - Varsayılan:
[]
KULLANIMDAN KALDIRILDI
Bu API kullanımdan kaldırılmıştır ve Vitest 4'te kaldırılacak. Lütfen bunun yerine browser.testerHtmlPath alanını kullanın.
Test ortamı başlatılmadan önce test HTML'sine enjekte edilecek özel komut dosyaları. Bu, Vitest tarayıcı uygulaması için gerekli polyfill'leri enjekte etmek için kullanışlıdır. Çoğu durumda bunun yerine setupFiles kullanılması önerilir.
Komut dosyası src ve content Vite eklentileri tarafından işlenecektir.
browser.commands
- Tip:
Record<string, BrowserCommand> - Varsayılan:
{ readFile, writeFile, ... }
Tarayıcı testleri sırasında @vitest/browser/commands'dan içe aktarılabilen özel komutlar.
browser.connectTimeout
- Tip:
number - Varsayılan:
60_000
Milisaniye olarak zaman aşımı. Tarayıcıya bağlantı daha uzun sürerse, test paketi başarısız olur.
INFO
Bu, tarayıcının Vitest sunucusuyla WebSocket bağlantısını kurması gereken süreyi ifade eder. Normal koşullarda, bu zaman aşımına asla ulaşılmamalıdır.