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

Başlarken ​

Genel Bakış ​

Vitest ("vi-test" olarak telaffuz edilir), Vite tarafından desteklenen yeni nesil bir test çerçevesidir.

Projenin arkasındaki mantık hakkında daha fazla bilgiyi Neden Vitest bölümünde bulabilirsiniz.

Vitest'i Çevrimiçi Deneyin ​

Vitest'i StackBlitz üzerinden çevrimiçi deneyebilirsiniz. Vitest'i doğrudan tarayıcıda çalıştırır ve yerel kurulumla neredeyse aynı işlevselliği sunar; ancak makinenize herhangi bir şey yüklemenizi gerektirmez.

Projenize Vitest Ekleme ​

Video ile nasıl kurulacağını öğrenin
bash
npm install -D vitest
bash
yarn add -D vitest
bash
pnpm add -D vitest
bash
bun add -D vitest

TIP

Vitest, Vite >=v5.0.0 ve Node >=v18.0.0 gerektirir.

Yukarıda listelenen yöntemlerden birini kullanarak vitest'i package.json dosyanıza bir geliştirme bağımlılığı olarak eklemeniz önerilir. Ancak, vitest'i doğrudan çalıştırmayı tercih ederseniz, npx vitest kullanabilirsiniz (npx aracı npm ve Node.js ile birlikte gelir).

npx aracı belirtilen komutu çalıştırır. Varsayılan olarak, npx önce komutun yerel projenin ikili dosyalarında bulunup bulunmadığını kontrol eder. Orada bulunamazsa, npx sistemin $PATH'ine bakar ve bulunursa çalıştırır. Komut her iki konumda da bulunamazsa, npx çalıştırmadan önce geçici bir konuma yükler.

Test Yazımı ​

Örnek olarak, iki sayıyı toplayan bir fonksiyonun çıktısını doğrulayan basit bir test yazacağız.

js
export function sum(a, b) {
  return a + b;
}
js
import { expect, test } from 'vitest';
import { sum } from './sum.js';

test('adds 1 + 2 to equal 3', () => {
  expect(sum(1, 2)).toBe(3);
});

TIP

Varsayılan olarak, test dosyaları adlarında .test. veya .spec. içermelidir.

Ardından, testi çalıştırmak için package.json dosyanıza aşağıdaki bölümü ekleyin:

json
{
  "scripts": {
    "test": "vitest"
  }
}

Son olarak, paket yöneticinize bağlı olarak npm run test, yarn test veya pnpm test komutunu çalıştırın; Vitest aşağıdaki mesajı yazdıracaktır:

txt
✓ sum.test.js (1)
  ✓ adds 1 + 2 to equal 3

Test Files  1 passed (1)
     Tests  1 passed (1)
  Start at  02:15:44
  Duration  311ms

WARNING

Paket yöneticiniz olarak Bun kullanıyorsanız, bun test komutu yerine bun run test komutunu kullandığınızdan emin olun, aksi takdirde Bun kendi test çalıştırıcısını çalıştıracaktır.

Vitest kullanımı hakkında daha fazla bilgi için API bölümüne bakın.

Vitest Yapılandırması ​

Vitest'in ana avantajlarından biri, Vite ile birleşik bir yapılandırmaya sahip olmasıdır. Kök vite.config.ts dosyanız mevcutsa, Vitest onu okuyarak Vite uygulamanızdaki eklentileri ve kurulumu kullanacaktır. Örneğin, Vite resolve.alias ve plugins yapılandırmanız doğrudan çalışacaktır. Test sırasında farklı bir yapılandırma istiyorsanız şunları yapabilirsiniz:

  • Daha yüksek önceliğe sahip olacak vitest.config.ts oluşturun.
  • CLI'ye --config seçeneğini kullanın, örn. vitest --config ./path/to/vitest.config.ts.
  • vite.config.ts içinde farklı yapılandırmaları koşullu olarak uygulamak için defineConfig üzerinde process.env.VITEST veya mode özelliğini kullanın (geçersiz kılınmazsa test olarak ayarlanacaktır).

Vitest, yapılandırma dosyaları için Vite ile aynı uzantıları (.js, .mjs, .cjs, .ts, .cts, .mts) destekler. Ancak .json uzantısını desteklemez.

Vite'ı derleme aracı olarak kullanmıyorsanız, Vitest'i yapılandırma dosyanızdaki test özelliğini kullanarak yapılandırabilirsiniz:

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

export default defineConfig({
  test: {
    // ...
  },
});

TIP

Vite'ı kendiniz kullanmasanız bile, Vitest dönüşüm süreçleri için büyük ölçüde ona bağımlıdır. Bu yüzden, Vite belgelerinde açıklanan herhangi bir özelliği de yapılandırabilirsiniz.

Zaten Vite kullanıyorsanız, Vite yapılandırmanıza test özelliğini ekleyin. Ayrıca, yapılandırma dosyanızın en üstüne üç eğik çizgi yönergesi ile Vitest türlerine bir referans eklemeniz gerekecektir.

ts
/// <reference types="vitest" />
import { defineConfig } from 'vite';

export default defineConfig({
  test: {
    // ...
  },
});

<reference types="vitest" /> bir sonraki ana güncellemede kullanımdan kalkacak, ancak Vitest 2.1'den itibaren vitest/config'e geçiş yapmaya başlayabilirsiniz:

ts
/// <reference types="vitest/config" />
import { defineConfig } from 'vite';

export default defineConfig({
  test: {
    // ... Seçenekleri buraya belirtin.
  },
});

Yapılandırma seçeneklerinin listesi için Yapılandırma Referansı bölümüne bakın.

WARNING

Vite ve Vitest için iki ayrı yapılandırma dosyası kullanmaya karar verirseniz, Vitest yapılandırma dosyanızda aynı Vite seçeneklerini tanımladığınızdan emin olun. Çünkü bu dosya Vite dosyanızı genişletmeyecek, aksine geçersiz kılacaktır. Ayrıca, Vite yapılandırmasını Vitest yapılandırmasıyla birleştirmek için vite veya vitest/config modüllerinden mergeConfig yöntemini kullanabilirsiniz:

ts
import { defineConfig, mergeConfig } from 'vitest/config';
import viteConfig from './vite.config.mjs';

export default mergeConfig(
  viteConfig,
  defineConfig({
    test: {
      // ...
    },
  })
);
ts
import { defineConfig } from 'vite';
import Vue from '@vitejs/plugin-vue';

export default defineConfig({
  plugins: [Vue()],
});

Ancak, iki ayrı dosya oluşturmak yerine hem Vite hem de Vitest için aynı dosyayı kullanmanızı öneririz.

Projeler Desteği ​

Aynı proje içinde farklı proje yapılandırmalarını Test Projeleri ile yönetin. Projelerinizi tanımlayan dosya ve klasör listesini vitest.config dosyasında belirtebilirsiniz.

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

export default defineConfig({
  test: {
    projects: [
      // Projelerinizi tanımlamak için glob desenleri listesi kullanabilirsiniz.
      // Vitest, bir yapılandırma dosyaları listesi veya yapılandırma dosyalarının bulunduğu dizinler bekler.
      'packages/*',
      'tests/*/vitest.config.{e2e,unit}.ts',
      // Aynı testleri bile, aynı "vitest" süreci içinde farklı yapılandırmalarla çalıştırabilirsiniz.
      {
        test: {
          name: 'happy-dom',
          root: './shared_tests',
          environment: 'happy-dom',
          setupFiles: ['./setup.happy-dom.ts'],
        },
      },
      {
        test: {
          name: 'node',
          root: './shared_tests',
          environment: 'node',
          setupFiles: ['./setup.node.ts'],
        },
      },
    ],
  },
});

Komut Satırı Arayüzü (CLI) ​

Vitest'in yüklü olduğu bir projede, npm betiklerinizde vitest ikili dosyasını kullanabilir veya doğrudan npx vitest ile çalıştırabilirsiniz. İşte yeni oluşturulmuş bir Vitest projesindeki varsayılan npm betikleri:

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

Dosya değişikliklerini izlemeden testleri tek seferlik çalıştırmak için vitest run komutunu kullanın. --port veya --https gibi ek CLI seçenekleri belirtebilirsiniz. Tüm CLI seçeneklerini görmek için projenizde npx vitest --help komutunu çalıştırın.

Komut Satırı Arayüzü hakkında daha fazla bilgi edinin.

Bağımlılıkların Otomatik Kurulumu ​

Vitest, belirli bağımlılıklar yüklü değilse bunları yüklemenizi önerecektir. Bu davranışı VITEST_SKIP_INSTALL_CHECKS=1 ortam değişkenini ayarlayarak kapatabilirsiniz.

IDE Entegrasyonları ​

Vitest ile test deneyiminizi geliştirmek için Visual Studio Code için resmi bir uzantı da sunuyoruz.

VS Code Marketplace'ten Yükle

IDE Entegrasyonları hakkında daha fazla bilgi edinin.

Örnekler ​

ÖrnekKaynakDeneme Ortamı
basicGitHubÇevrimiçi Oyna
fastifyGitHubÇevrimiçi Oyna
in-source-testGitHubÇevrimiçi Oyna
litGitHubÇevrimiçi Oyna
vueGitHubÇevrimiçi Oyna
markoGitHubÇevrimiçi Oyna
preactGitHubÇevrimiçi Oyna
reactGitHubÇevrimiçi Oyna
solidGitHubÇevrimiçi Oyna
svelteGitHubÇevrimiçi Oyna
sveltekitGitHubÇevrimiçi Oyna
profilingGitHubYok
typecheckGitHubÇevrimiçi Oyna
projectsGitHubÇevrimiçi Oyna

Vitest Kullanan Projeler ​

  • unocss
  • unplugin-auto-import
  • unplugin-vue-components
  • vue
  • vite
  • vitesse
  • vitesse-lite
  • fluent-vue
  • vueuse
  • milkdown
  • gridjs-svelte
  • spring-easing
  • bytemd
  • faker
  • million
  • Vitamin
  • neodrag
  • svelte-multiselect
  • iconify
  • tdesign-vue-next
  • cz-git

Yayınlanmamış Commit'leri Kullanma ​

Ana daldaki her commit ve 'cr-tracked' etiketli PR'lar pkg.pr.new adresinde yayınlanmaktadır. npm i https://pkg.pr.new/vitest@{commit} komutuyla yükleyebilirsiniz.

Kendi değişikliklerinizi yerel olarak test etmek isterseniz, kendiniz derleyip bağlayabilirsiniz (pnpm gereklidir):

bash
git clone https://github.com/vitest-dev/vitest.git
cd vitest
pnpm install
cd packages/vitest
pnpm run build
pnpm link --global # bu adımda tercih ettiğiniz paket yöneticisini kullanabilirsiniz

Ardından Vitest kullandığınız projeye gidin ve pnpm link --global vitest (veya Vitest'i global olarak bağladığınız paket yöneticisi) komutunu çalıştırın.

Topluluk ​

Sorularınız varsa veya yardıma ihtiyacınız olursa, Discord ve GitHub Tartışmaları üzerinden toplulukla iletişime geçin.

Pager
Önceki sayfaNeden Vitest
Sonraki sayfaÖzellikler

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

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/guide/

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

Copyright (c) 2021-Present Vitest Team