Skip to content
Vitest 0
Main Navigation KılavuzAPIYapılandırmaİleri
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

Kılavuz

Neden Vitest

Başlangıç

Özellikler

Çalışma Alanı

Komut Satırı Arayüzü

Test Filtreleme

Kapsam

Anlık Görüntü (Snapshot) Testleri

Sahtecilik (Mocking)

Tür Testleri

Vitest Arayüzü

Tarayıcı Modu (deneysel)

Kaynak İçi Test

Test Bağlamı

Test Ortamı

Eşleştiricileri Genişletme

IDE Tümleştirmeleri

Hata Ayıklama

Diğer Test Çalıştırıcılarıyla Karşılaştırmalar

Geçiş Rehberi

Yaygın Hatalar

API

Test API Başvurusu

Mock Fonksiyonlar

Vi

expect

expectTypeOf

assertType

Yapılandırma

Vitest'i Yapılandırma

Bu sayfada

Kapsam ​

Vitest, v8 aracılığıyla yerel kod kapsamını ve istanbul aracılığıyla araçlandırılmış kod kapsamını destekler.

Kapsam Sağlayıcıları ​

TIP

Vitest v0.22.0'dan itibaren

Hem v8 hem de istanbul isteğe bağlıdır. Varsayılan olarak v8 kullanılır.

test.coverage.provider seçeneğini v8 veya istanbul olarak ayarlayarak kapsam aracını seçebilirsiniz:

ts
// vite.config.ts
import { defineConfig } from 'vitest/config';

export default defineConfig({
  test: {
    coverage: {
      provider: 'istanbul', // veya 'v8'
    },
  },
});

Vitest'i başlattığınızda, ilgili destek paketini otomatik olarak yükleyecektir.

Manuel olarak yüklemek isterseniz:

bash
# v8 için
npm i -D @vitest/coverage-v8

# istanbul için
npm i -D @vitest/coverage-istanbul

Kapsam Kurulumu ​

Kapsamı etkinleştirerek test etmek için, CLI'da --coverage işaretini kullanabilirsiniz. Varsayılan olarak, ['text', 'html', 'clover', 'json'] raporlayıcıları kullanılacaktır.

json
{
  "scripts": {
    "test": "vitest",
    "coverage": "vitest run --coverage"
  }
}

Yapılandırmak için, yapılandırma dosyanızda test.coverage seçeneklerini ayarlayın:

ts
// vite.config.ts
import { defineConfig } from 'vitest/config';

export default defineConfig({
  test: {
    coverage: {
      reporter: ['text', 'json', 'html'],
    },
  },
});

Özel Kapsam Sağlayıcı ​

test.coverage.provider içinde 'custom' değeri geçirilerek özel bir kapsam sağlayıcı kullanmak da mümkündür:

ts
// vite.config.ts
import { defineConfig } from 'vitest/config';

export default defineConfig({
  test: {
    coverage: {
      provider: 'custom',
      customProviderModule: 'my-custom-coverage-provider',
    },
  },
});

Özel sağlayıcılar, CoverageProviderModule'ü yüklemek için bir modül adı veya yolu olan bir customProviderModule seçeneğine ihtiyaç duyar. Bu modül, varsayılan dışa aktarım olarak CoverageProviderModule'ü uygulayan bir nesne dışa aktarmalıdır:

ts
// my-custom-coverage-provider.ts
import type {
  CoverageProvider,
  CoverageProviderModule,
  ResolvedCoverageOptions,
  Vitest,
} from 'vitest';

const CustomCoverageProviderModule: CoverageProviderModule = {
  getProvider(): CoverageProvider {
    return new CustomCoverageProvider();
  },

  // CoverageProviderModule'ün geri kalanını uygular
};

class CustomCoverageProvider implements CoverageProvider {
  name = 'custom-coverage-provider';
  options!: ResolvedCoverageOptions;

  initialize(ctx: Vitest) {
    this.options = ctx.config.coverage;
  }

  // CoverageProvider'ın geri kalanını uygular
}

export default CustomCoverageProviderModule;

Daha fazla bilgi için tür tanımlarına bakın.

Varsayılan Kapsam Klasörü Konumunu Değiştirme ​

Bir kapsam raporu çalıştırıldığında, projenizin kök dizininde bir coverage klasörü oluşturulur. Bunu başka bir dizine taşımak isterseniz, vite.config.js dosyasındaki test.coverage.reportsDirectory özelliğini kullanın.

js
import { defineConfig } from 'vite';

export default defineConfig({
  test: {
    coverage: {
      reportsDirectory: './tests/unit/coverage',
    },
  },
});

Kodu Yok Sayma ​

Her iki kapsam sağlayıcısının da kodu kapsam raporlarından yok sayma yöntemleri vardır:

  • v8
  • ìstanbul

TypeScript kullanırken, kaynak kodları esbuild kullanılarak dönüştürülür ve bu da tüm yorumları kaynak kodlarından temizler (esbuild#516). Yasal yorumlar olarak kabul edilen yorumlar korunur.

istanbul sağlayıcısı için, yok sayma ipucuna bir @preserve anahtar kelimesi ekleyebilirsiniz. Bu yok sayma ipuçlarının nihai üretim yapısına dahil edilebileceğini unutmayın.

diff
-/* istanbul ignore if */
+/* istanbul ignore if -- @preserve */
if (condition) {

v8 için bu herhangi bir soruna neden olmaz. Her zamanki gibi TypeScript ile c8 ignore yorumlarını kullanabilirsiniz:

ts
/* c8 ignore next 3 */
if (condition) {

Diğer Seçenekler ​

Kapsam için yapılandırılabilir tüm seçenekleri görmek için Kapsam Yapılandırma Referansı bölümüne bakın.

Vitest Kullanıcı Arayüzü ​

Vitest 0.31.0'dan itibaren, kapsam raporunuzu Vitest Arayüzü içinde kontrol edebilirsiniz.

Vitest Kullanıcı Arayüzü, açıkça etkinleştirildiğinde ve html kapsam raporlayıcısı mevcut olduğunda kapsam raporunu etkinleştirecektir; aksi takdirde kullanılamayacaktır:

  • Yapılandırmanızda coverage.enabled=true seçeneğini etkinleştirin veya Vitest'i --coverage.enabled=true işaretiyle çalıştırın.
  • coverage.reporters listesine html ekleyin: kapsam raporunu bir alt dizine koymak için subdir seçeneğini de etkinleştirebilirsiniz.
Vitest Arayüzü'nde html kapsam etkinleştirmeVitest Arayüzü'nde html kapsam etkinleştirmeVitest Arayüzü'nde html kapsamVitest Arayüzü'nde html kapsam
Pager
Önceki sayfaTest Filtreleme
Sonraki sayfaAnlık Görüntü (Snapshot) Testleri

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

Copyright (c) 2024 Mithril Contributors

https://v0.vitest.dev/guide/coverage

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

Copyright (c) 2024 Mithril Contributors