Skip to content
Vitest 2
Main Navigation KılavuzAPIYapılandırmaTarayıcı Moduİleri
3.2.0
2.1.9
1.6.1
0.34.6

Türkçe

English
简体中文
繁體中文
Español
Français
Русский
Português – Brasil
Deutsch
日本語
한국어
Italiano
Polski
čeština
magyar

Türkçe

English
简体中文
繁體中文
Español
Français
Русский
Português – Brasil
Deutsch
日本語
한국어
Italiano
Polski
čeština
magyar

Görünüm

Sidebar Navigation

Node API

Test Çalıştırıcısı

Görev Meta Verileri

Raporlayıcıları Genişletme

Özel Havuz

Bu sayfada

Node API ​

WARNING

Vitest, deneysel özel API'ler sunar. Kırıcı değişiklikler SemVer kurallarını takip etmeyebilir, bu nedenle kullanırken lütfen Vitest sürümünü sabitleyin.

startVitest ​

Vitest testlerini Node API'sini kullanarak başlatabilirsiniz:

js
import { startVitest } from 'vitest/node';

const vitest = await startVitest('test');

await vitest?.close();

startVitest fonksiyonu, testler başlatılabiliyorsa bir Vitest örneği döndürür. Aşağıdaki durumlardan herhangi birinin gerçekleşmesi halinde undefined döndürür:

  • Vitest, vite paketini bulamadı (genellikle Vitest ile birlikte yüklenir).
  • Eğer kapsam (coverage) etkinleştirilmişse ve çalıştırma modu "test" ise, ancak kapsam paketi yüklenmemişse (@vitest/coverage-v8 veya @vitest/coverage-istanbul).
  • Eğer ortam paketi yüklenmemişse (jsdom/happy-dom/@edge-runtime/vm).

Eğer undefined döndürülürse veya çalıştırma sırasında testler başarısız olursa, Vitest process.exitCode değerini 1 olarak ayarlar.

İzleme modu etkin değilse, Vitest close metodunu çağırır.

İzleme modu etkinse ve terminal TTY desteği sunuyorsa, Vitest konsol kısayollarını etkinleştirir.

İkinci argüman olarak bir filtre listesi iletebilirsiniz. Vitest, yalnızca dosya yolunda bu listedeki dizelerden en az birini içeren testleri çalıştıracaktır.

Ayrıca, üçüncü argümanı kullanarak CLI argümanlarını iletebilirsiniz. Bu argümanlar, mevcut test yapılandırma seçeneklerini geçersiz kılacaktır.

Ya da, dördüncü argüman olarak tam bir Vite yapılandırması iletebilirsiniz. Bu yapılandırma, kullanıcı tarafından tanımlanan diğer tüm seçeneklere göre öncelikli olacaktır.

Testler çalıştırıldıktan sonra, sonuçları state.getFiles API'sinden alabilirsiniz:

ts
const vitest = await startVitest('test');

console.log(vitest.state.getFiles()); // [{ type: 'file', ... }]

Vitest 2.1 itibariyle, state.getFiles ile birlikte "Raporlanan Görevler" API'sinin kullanılması önerilir. Gelecekte, Vitest bu nesneleri doğrudan döndürecektir:

ts
const vitest = await startVitest('test');

const [fileTask] = vitest.state.getFiles();
const testFile = vitest.state.getReportedEntity(fileTask);

createVitest ​

createVitest fonksiyonunu kullanarak Vitest örneğini kendiniz oluşturabilirsiniz. startVitest ile aynı Vitest örneğini döndürür, ancak testleri başlatmaz ve yüklü paketleri doğrulamaz.

js
import { createVitest } from 'vitest/node';

const vitest = await createVitest('test', {
  watch: false,
});

parseCLI ​

CLI argümanlarını ayrıştırmak için bu metodu kullanabilirsiniz. Metot, tek boşluklarla ayrılmış argümanlar içeren bir dize veya Vitest CLI'nın kullandığı biçimde bir dize dizisi kabul eder. Bu metot, daha sonra createVitest veya startVitest metotlarına iletebileceğiniz bir filtre ve options nesnesi döndürür.

ts
import { parseCLI } from 'vitest/node';

parseCLI('vitest ./files.ts --coverage --browser=chrome');

Vitest ​

Vitest örneği, mevcut test modunu gerektirir. Bunlar şunlar olabilir:

  • Çalışma zamanı testleri çalıştırılırken test
  • Kıyaslama (benchmark) çalıştırılırken benchmark

mode ​

test ​

Test modu sadece test veya it içindeki fonksiyonları çağırır ve bench bulunduğunda bir hata verir. Bu mod, test dosyalarını bulmak için yapılandırmadaki include ve exclude seçeneklerini kullanır.

benchmark ​

Kıyaslama modu sadece bench fonksiyonlarını çalıştırır ve test veya it bulunduğunda bir hata verir. Bu mod, kıyaslama dosyalarını bulmak için yapılandırmadaki benchmark.include ve benchmark.exclude seçeneklerini kullanır.

start ​

Test dosyalarını filtrelemek için dize dizilerinden oluşan bir liste iletebilirsiniz.

provide ​

Vitest, vitest.getCoreWorkspaceProject().provide metoduna kısayol olarak provide metodunu sunar. Bu metot sayesinde, ana iş parçacığından (main thread) testlere değerler aktarabilirsiniz. Tüm değerler depolanmadan önce structuredClone kullanılarak kontrol edilir; ancak değerlerin kendileri kopyalanmaz.

Testlerde değerleri almak için, vitest giriş noktasından inject metodunu içe aktarmanız gerekir:

ts
import { inject } from 'vitest';
const port = inject('wsPort'); // 3000

Daha iyi tip güvenliği için, ProvidedContext tipini genişletmenizi öneririz:

ts
import { createVitest } from 'vitest/node';

const vitest = await createVitest('test', {
  watch: false,
});
vitest.provide('wsPort', 3000);

declare module 'vitest' {
  export interface ProvidedContext {
    wsPort: number;
  }
}

WARNING

provide, teknik olarak WorkspaceProject'in bir metodudur, bu nedenle belirli bir projeyle sınırlıdır. Ancak, tüm projeler çekirdek projeden değerleri miras alır, bu da vitest.provide metodunu testlere değer iletmek için evrensel bir yöntem haline getirir.

TIP

Bu metot, public API'yi kullanmak istemediğiniz durumlarda global kurulum dosyalarında da kullanılabilir:

js
export default function setup({ provide }) {
  provide('wsPort', 3000);
}
Pager
Sonraki sayfaTest Çalıştırıcısı

MIT Lisansı altında yayınlanmıştır.

Copyright (c) 2021-Present Vitest Team

https://v2.vitest.dev/advanced/api

MIT Lisansı altında yayınlanmıştır.

Copyright (c) 2021-Present Vitest Team