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

TestCase ​

TestCase sınıfı tek bir testi temsil eder. Bu sınıf yalnızca ana iş parçacığında (main thread) mevcuttur. Çalışma zamanı görevleriyle (runtime tasks) çalışıyorsanız "Runner API" bölümüne bakın.

TestCase örneği her zaman test değerine sahip bir type özelliğine sahiptir. Bunu farklı görev türlerini ayırt etmek için kullanabilirsiniz:

ts
if (task.type === 'test') {
  task; // TestCase
}

project ​

Bu, testin ait olduğu TestProject projesine referanstır.

module ​

Bu, testin tanımlandığı TestModule modülüne doğrudan bir referanstır.

name ​

Bu, test fonksiyonuna iletilen test adıdır.

ts
import { test } from 'vitest';

// [!code word:'the validation works correctly']
test('the validation works correctly', () => {
  // ...
});

fullName ​

Tüm üst suite'ler > sembolüyle ayrılmış olarak testin tam adıdır. Bu testin tam adı "the validation logic > the validation works correctly" şeklindedir:

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

// [!code word:'the validation works correctly']
// [!code word:'the validation logic']
describe('the validation logic', () => {
  test('the validation works correctly', () => {
    // ...
  });
});

id ​

Bu, testin benzersiz kimliğidir. Bu kimlik deterministiktir ve birden çok çalıştırmada aynı test için aynı kalacaktır. Kimlik, proje adına, modül kimliğine ve test sırasına dayanır.

Kimlik şöyle görünür:

1223128da3_0_0
^^^^^^^^^^ dosya hash'i
           ^ suite indeksi
             ^ test indeksi

TIP

Vitest 3'ten beri kullanılabilen vitest/node'dan generateFileHash fonksiyonu ile dosya hash'i oluşturabilirsiniz:

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

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

DANGER

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

location ​

Testin tanımlandığı modüldeki konum. Konumlar yalnızca includeTaskLocation yapılandırmada etkinleştirilirse toplanır. --reporter=html, --ui veya --browser bayrakları kullanılırsa bu seçeneğin otomatik olarak etkinleştirildiğini unutmayın.

Bu testin konumu { line: 3, column: 1 }'e eşit olacaktır:

ts
import { test } from 'vitest'

test('the validation works correctly', () => {
  // ...
})
1
2
3
4
5

parent ​

Üst suite. Test doğrudan modül içinde çağrıldıysa, üst öğe modülün kendisi olacaktır.

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';
}

Testin tanımlandığı seçenekler.

ok ​

ts
function ok(): boolean;

Testin suite'i başarısız edip etmediğini kontrol eder. Test henüz tamamlanmadıysa veya atlandıysa true döndürür.

meta ​

ts
function meta(): TaskMeta;

Yürütülmesi sırasında teste eklenen özel meta veriler. Meta, bir test çalışması sırasında ctx.task.meta nesnesine bir özellik atayarak eklenebilir:

ts
import { test } from 'vitest';

test('the validation works correctly', ({ task }) => {
  // ...

  task.meta.decorated = false;
});

Test henüz çalışmayı bitirmediyse, meta boş bir nesne olacaktır.

result ​

ts
function result(): TestResult;

Test sonuçları. Test henüz bitmediyse veya yeni toplandıysa, TestResultPending'e eşit olacaktır:

ts
export interface TestResultPending {
  /**
   * Test toplandı, ancak henüz çalışmayı bitirmedi.
   */
  readonly state: 'pending';
  /**
   * Bekleyen testlerde hata yoktur.
   */
  readonly errors: undefined;
}

Test atlandıysa (skipped), dönüş değeri TestResultSkipped olacaktır:

ts
interface TestResultSkipped {
  /**
   * Test `skip` veya `todo` bayrağıyla atlandı.
   * Hangisinin kullanıldığını `options.mode` seçeneğinde görebilirsiniz.
   */
  readonly state: 'skipped';
  /**
   * Atlanan testlerde hata yoktur.
   */
  readonly errors: undefined;
  /**
   * `ctx.skip(note)`'a iletilen özel bir not.
   */
  readonly note: string | undefined;
}

TIP

Başka bir testin only bayrağı varsa ve test atlandıysa, options.mode skip'e eşit olacaktır.

Test başarısız olursa, dönüş değeri TestResultFailed olacaktır:

ts
interface TestResultFailed {
  /**
   * Test çalıştırılamadı.
   */
  readonly state: 'failed';
  /**
   * Test yürütülmesi sırasında fırlatılan hatalar.
   */
  readonly errors: ReadonlyArray<TestError>;
}

Test geçtiyse, dönüş değeri TestResultPassed olacaktır:

ts
interface TestResultPassed {
  /**
   * Test başarıyla tamamlandı.
   */
  readonly state: 'passed';
  /**
   * Test yürütülmesi sırasında fırlatılan hatalar.
   */
  readonly errors: ReadonlyArray<TestError> | undefined;
}

WARNING

passed durumundaki testin hala hataları olabileceğini unutmayın - bu, retry en az bir kez tetiklenirse olabilir.

diagnostic ​

ts
function diagnostic(): TestDiagnostic | undefined;

Test hakkında süre, bellek kullanımı vb. gibi faydalı bilgiler:

ts
interface TestDiagnostic {
  /**
   * Testin çalışma süresi `slowTestThreshold`'un üzerindeyse.
   */
  readonly slow: boolean;
  /**
   * Testin kullandığı bellek miktarı bayt cinsinden.
   * Bu değer yalnızca test `logHeapUsage` bayrağıyla yürütülürse kullanılabilir.
   */
  readonly heap: number | undefined;
  /**
   * Testi çalıştırmak için geçen süre ms cinsinden.
   */
  readonly duration: number;
  /**
   * Testin başladığı an ms cinsinden.
   */
  readonly startTime: number;
  /**
   * Testin yeniden denendiği sayı.
   */
  readonly retryCount: number;
  /**
   * `repeats` seçeneğiyle yapılandırıldığı gibi testin tekrarlandığı sayı.
   * Test tekrar sırasında başarısız olursa ve `retry` yapılandırılmamışsa bu değer daha düşük olabilir.
   */
  readonly repeatCount: number;
  /**
   * Test ikinci bir yeniden denemede geçtiyse.
   */
  readonly flaky: boolean;
}

INFO

Test henüz çalıştırılmak üzere zamanlanmadıysa diagnostic() undefined döndürecektir.

Pager
Önceki sayfaTestSpecification
Sonraki sayfaTestSuite

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

Copyright (c) 2021-Present Vitest Team

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

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

Copyright (c) 2021-Present Vitest Team