Skip to content
Vitest 3
Main Navigation Kılavuz & APIYapılandırmaTarayıcı ModuGelişmiş API
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

API

Node API

Gelişmiş API

Vitest API

Test Projesi

TestSpecification

Test Task API

TestCase

TestSuite

TestModule

TestCollection

Eklenti API'si

Çalıştırıcı API'si

Raporlayıcılar

Görev Meta Verileri

Kılavuz

Testleri Çalıştırma

Raporlayıcıları Genişletme

Özel Havuz

Vitest'i Yapılandırma

Test API Referansları

Bu sayfada

TestSuite ​

TestSuite sınıfı tek bir test paketini temsil eder. Bu sınıf yalnızca ana iş parçacığında mevcuttur. Çalışma zamanı görevleriyle çalışıyorsanız, lütfen "Çalıştırıcı API" bölümüne başvurun.

Bir TestSuite örneği her zaman suite değerine sahip bir type özelliğine sahiptir. Bunu farklı görev türleri arasında ayrım yapmak için kullanabilirsiniz:

ts
if (task.type === 'suite') {
  task; // TestSuite
}

project ​

Bu, testin ait olduğu TestProject referansıdır.

module ​

Bu, testin tanımlandığı TestModule doğrudan referansıdır.

name ​

Bu, describe işlevine iletilen paketin adıdır.

ts
import { describe } from 'vitest';

// [!code word:'doğrulama mantığı']
describe('doğrulama mantığı', () => {
  // ...
});

fullName ​

Paketin tam adı, tüm üst paketleri > sembolüyle ayrılmış olarak içerir. Örneğin, bu paketin tam adı "doğrulama mantığı > şehirleri doğrulama" şeklinde olacaktır:

ts
import { describe, test } from 'vitest';

// [!code word:'doğrulama mantığı']
// [!code word:'şehirleri doğrulama']
describe('doğrulama mantığı', () => {
  describe('şehirleri doğrulama', () => {
    // ...
  });
});

id ​

Bu, test paketinin benzersiz tanımlayıcısıdır. Bu kimlik deterministiktir ve birden çok çalıştırmada aynı paket için değişmeyecektir. Kimlik, proje adına, modül kimliğine ve paket sırasına göre oluşturulur.

ID şu şekilde görünür:

1223128da3_0_0_0
^^^^^^^^^^ dosya hash'i
           ^ paket dizini
             ^ iç içe paket dizini
               ^ test dizini

TIP

Vitest 3'ten itibaren kullanılabilen vitest/node içindeki generateFileHash işleviyle dosya karması oluşturabilirsiniz:

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

const hash = generateFileHash(
  '/file/path.js', // göreli yol
  undefined // proje adı veya ayarlanmamışsa `undefined` değeri
);

DANGER

Kimliği ayrıştırmaya çalışmayın. Başında eksi işareti bulunabilir: -1223128da3_0_0_0.

location ​

Paketin tanımlandığı modüldeki konumu. Konumlar yalnızca includeTaskLocation yapılandırma seçeneği etkinleştirilirse toplanır. --reporter=html, --ui veya --browser bayrakları kullanıldığında bu seçeneğin otomatik olarak etkinleştirildiğini unutmayın.

Bu paketin konumu { line: 3, column: 1 } olacaktır:

ts
import { describe } from 'vitest'

describe('doğrulama doğru çalışıyor', () => {
  // ...
})
1
2
3
4
5

parent ​

Üst paket. Eğer paket doğrudan modül içinde çağrıldıysa, üst öğe modülün kendisi olur.

options ​

ts
interface TaskOptions {
  readonly each: boolean | undefined;
  readonly fails: boolean | undefined;
  readonly concurrent: boolean | undefined;
  readonly shuffle: boolean | undefined;
  readonly retry: number | undefined;
  readonly repeats: number | undefined;
  readonly mode: 'run' | 'only' | 'skip' | 'todo';
}

Bu, paketle birlikte toplanan seçeneklerdir.

children ​

Bu, geçerli paketin içindeki tüm paketler ve testlerden oluşan bir koleksiyondur.

ts
for (const task of suite.children) {
  if (task.type === 'test') {
    console.log('test', task.fullName);
  } else {
    // task bir TestSuite'dur
    console.log('paket', task.name);
  }
}

WARNING

suite.children'ın yalnızca ilk iç içe geçme düzeyini yineleyeceğini, daha derinlere inmeyeceğini unutmayın. Tüm testleri veya paketleri yinelemeniz gerekiyorsa, children.allTests() veya children.allSuites() yöntemlerini kullanın. Her şeyi yinelemeniz gerekiyorsa, özyinelemeli bir işlev kullanın:

ts
function visit(collection: TestCollection) {
  for (const task of collection) {
    if (task.type === 'suite') {
      // bir paketi raporlayın
      visit(task.children);
    } else {
      // bir testi raporlayın
    }
  }
}

ok ​

ts
function ok(): boolean;

Bu, paketin başarısız testlerinin olup olmadığını denetler. Paket toplama sırasında başarısız olursa bu da false değerini döndürür. Bu durumda, fırlatılan hatalar için errors() yöntemini kontrol edin.

state ​

ts
function state(): TestSuiteState;

Paketin çalışma durumunu denetler. Olası dönüş değerleri:

  • pending: bu paketteki testler henüz çalışmayı tamamlamadı.
  • failed: bu pakette başarısız testler var veya testler toplanamadı. errors() boş değilse, paketin testleri toplamada başarısız olduğu anlamına gelir.
  • passed: bu paketin içindeki tüm testler geçti.
  • skipped: bu paket toplama sırasında atlandı.

WARNING

Test modülünün de aynı değerleri döndüren bir state yöntemi olduğunu, ancak modül henüz yürütülmediyse ek olarak bir queued durumu da döndürebileceğini unutmayın.

errors ​

ts
function errors(): TestError[];

Toplama sırasında, test çalıştırması dışında meydana gelen sözdizimi hataları gibi hatalar.

ts
import { describe } from 'vitest';

describe('toplama başarısız oldu', () => {
  throw new Error('özel bir hata');
});

WARNING

Hataların basit nesnelere serileştirildiğini unutmayın: instanceof Error her zaman false değerini döndürecektir.

meta 3.1.0+ ​

ts
function meta(): TaskMeta;

Yürütülmesi veya toplanması sırasında pakete eklenen özel meta verilerdir. Meta veriler, bir test çalıştırması sırasında task.meta nesnesine bir özellik atanarak eklenebilir:

ts
import { test } from 'vitest';

describe('doğrulama doğru çalışıyor', task => {
  // toplama sırasında "decorated" değerini ata
  task.meta.decorated = false;

  test('bazı testler', ({ task }) => {
    // test çalıştırması sırasında "decorated" değerini ata,
    // yalnızca onTestCaseReady kancasında kullanılabilir olacaktır
    task.suite.meta.decorated = false;
  });
});

TIP

Meta veriler toplama sırasında (test işlevinin dışında) eklendiyse, özel raporlayıcıdaki onTestModuleCollected kancasında kullanılabilir olacaktır.

Pager
Önceki sayfaTestCase
Sonraki sayfaTestModule

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

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/advanced/api/test-suite

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

Copyright (c) 2021-Present Vitest Team