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

Giriş

Neden Vitest

Başlarken

Özellikler

Vitest'i Yapılandırma

API

Test API Referansları

Mock Fonksiyonlar

Vi

expect

expectTypeOf

assert

assertType

Kılavuz

Komut Satırı Arayüzü

Test Filtreleme

Test Projeleri

Raporlayıcılar

Kapsam

Anlık Görüntüler

Mocking

Paralellik

Tür Testleri

Vitest UI

Kaynak İçi Test

Test Ortamı

Test Açıklamaları

Test Ortamı

Eşleştiricileri Genişletme

IDE Entegrasyonları

Hata Ayıklama

Sık Karşılaşılan Hatalar

Geçiş Kılavuzu

Vitest 3.0'a Geçiş

Jest'ten Geçiş

Performans

Test Performansını Profillendirme

Performansı İyileştirme

Tarayıcı Modu

Gelişmiş API

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

Bu sayfada

Kaynak İçi Test ​

Vitest, Rust'taki modül testlerine benzer şekilde, testleri doğrudan kaynak kodunuzun içinde, uygulamanızla birlikte çalıştırma imkanı sunar.

Bu yaklaşım, testlerin uygulama ile aynı kapsamı paylaşmasını ve dışa aktarılmamış dahili durumları test edebilmesini sağlar. Aynı zamanda, geliştirme sürecinde daha hızlı geri bildirim döngüsü sunar.

WARNING

Bu kılavuz, testleri kaynak kodunuzun içine nasıl yazacağınızı açıklamaktadır. Testleri ayrı dosyalarda yazmanız gerekiyorsa, lütfen "Test Yazma" kılavuzunu takip edin](./#writing-tests).

Kurulum ​

Başlamak için, kaynak dosyanızın sonuna bir if (import.meta.vitest) bloğu ekleyin ve içine testlerinizi yazın. Örneğin:

ts
// uygulama kodu
export function add(...args: number[]) {
  return args.reduce((a, b) => a + b, 0);
}

// kaynak içi test bloğu
if (import.meta.vitest) {
  const { it, expect } = import.meta.vitest;
  it('add', () => {
    expect(add()).toBe(0);
    expect(add(1)).toBe(1);
    expect(add(1, 2, 3)).toBe(6);
  });
}

Vitest'in src/ altındaki dosyaları tanıması için includeSource yapılandırmasını güncelleyin:

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

export default defineConfig({
  test: {
    includeSource: ['src/**/*.{js,ts}'], 
  },
});

Artık testlerinizi çalıştırmaya başlayabilirsiniz!

bash
$ npx vitest

Üretim Derlemesi ​

Üretim derlemesi için, toparlayıcının (bundler) ölü kod elemesini (dead code elimination) gerçekleştirebilmesi amacıyla yapılandırma dosyanızda define seçeneklerini ayarlamanız gerekecektir. Örneğin, Vite'da:

ts
/// <reference types="vitest/config" />

import { defineConfig } from 'vite'

export default defineConfig({
  test: {
    includeSource: ['src/**/*.{js,ts}'],
  },
  define: { 
    'import.meta.vitest': 'undefined', 
  }, 
})

Diğer Paketleyiciler ​

unbuild
ts
import { defineBuildConfig } from 'unbuild'

export default defineBuildConfig({
  replace: { 
    'import.meta.vitest': 'undefined', 
  }, 
  // other options
})

Daha fazla bilgi için: unbuild

Rollup
ts
import replace from '@rollup/plugin-replace'

export default {
  plugins: [
    replace({ 
      'import.meta.vitest': 'undefined', 
    }) 
  ],
  // other options
}

Daha fazla bilgi için: Rollup

TypeScript ​

import.meta.vitest için TypeScript desteği almak amacıyla, tsconfig.json dosyanıza vitest/importMeta ekleyin:

json
{
  "compilerOptions": {
    "types": [
      "vitest/importMeta"
    ]
  }
}

Tam bir örnek için examples/in-source-test adresine bakabilirsiniz.

Notlar ​

Bu özellik aşağıdaki durumlar için faydalı olabilir:

  • Küçük ölçekli fonksiyonlar veya yardımcı programlar için birim testi
  • Prototipleme
  • Satır İçi Doğrulama

Bileşenler veya uçtan uca testler gibi daha karmaşık testler için ayrı test dosyaları kullanılması şiddetle tavsiye edilir.

Pager
Önceki sayfaVitest UI
Sonraki sayfaTest Ortamı

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

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/guide/in-source

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

Copyright (c) 2021-Present Vitest Team