Çoklu Kurulumlar
Vitest 3 ile birlikte, yeni browser.instances seçeneğini kullanarak birden fazla tarayıcı kurulumu tanımlayabilirsiniz.
browser.instances kullanmanın test projelerine kıyasla temel avantajı, geliştirilmiş önbellek yönetimidir. Her proje aynı Vite sunucusunu kullanır, bu da dosya dönüşümünün ve bağımlılık ön paketlemesinin yalnızca bir kez gerçekleşmesi gerektiği anlamına gelir.
Farklı Tarayıcılar
Farklı tarayıcılar için seçenekleri belirtmek üzere browser.instances alanını kullanabilirsiniz. Örneğin, aynı testleri farklı tarayıcılarda çalıştırmak istiyorsanız, en basit yapılandırma şu şekilde olacaktır:
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
browser: {
enabled: true,
provider: 'playwright',
headless: true,
instances: [
{ browser: 'chromium' },
{ browser: 'firefox' },
{ browser: 'webkit' },
],
},
},
});Farklı Kurulumlar
Tarayıcıdan bağımsız olarak farklı yapılandırma seçenekleri de belirtebilirsiniz (ancak, örnekler de browser alanlarına sahip olabilir):
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,
},
},
],
},
},
});import { expect, inject, test } from 'vitest';
import { globalSetupModifier } from './example.js';
test('oran doğru çalışıyor', () => {
expect(inject('ratio') * globalSetupModifier).toBe(14);
});Bu örnekte Vitest, tüm testleri chromium tarayıcısında çalıştıracak, ancak './ratio-setup.ts' dosyasını yalnızca ilk yapılandırmada yürütecek ve provide alanına bağlı olarak farklı bir ratio değeri enjekte edecektir.
WARNING
Aynı tarayıcı adını kullanıyorsanız özel bir name değeri tanımlamanız gerektiğini unutmayın, aksi takdirde Vitest browser'ı proje adı olarak atayacaktır.
Filtreleme
Hangi projelerin çalıştırılacağını --project bayrağı ile filtreleyebilirsiniz. Vitest, manuel olarak atanmamışsa tarayıcı adını otomatik olarak proje adı olarak atayacaktır. Kök yapılandırmanın zaten bir adı varsa, Vitest bunları birleştirecektir: custom -> custom (browser).
$ vitest --project=chromiumexport default defineConfig({
test: {
browser: {
instances: [
// ad: chromium
{ browser: 'chromium' },
// ad: custom
{ browser: 'firefox', name: 'custom' },
]
}
}
})export default defineConfig({
test: {
name: 'custom',
browser: {
instances: [
// ad: custom (chromium)
{ browser: 'chromium' },
// ad: manual
{ browser: 'firefox', name: 'manual' },
]
}
}
})WARNING
Vitest, headless modu false olarak ayarlanmış (varsayılan davranış) birden fazla örneği aynı anda çalıştıramaz. Geliştirme sırasında, terminalinizde hangi projenin çalıştırılacağını seçebilirsiniz:
? 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
firefoxCI ortamında (yani, headless: false yapılandırmada manuel olarak ayarlanmış ve CI ortamında geçersiz kılınmamışsa) birden fazla görsel arayüzlü projeniz varsa, Vitest çalıştırmayı başaramayacak ve hiçbir testi başlatmayacaktır.
Testleri başsız modda çalıştırma yeteneği bundan etkilenmez. Eğer headless: false olarak ayarlanmamışlarsa, tüm örnekleri paralel olarak çalıştırabilirsiniz.