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

Test Projeleri ​

Örnek Proje

GitHub - Çevrimiçi Deneyin

WARNING

Bu özellik daha önce workspace olarak biliniyordu. workspace 3.2 sürümünden itibaren kullanımdan kaldırılmış ve projects yapılandırmasıyla değiştirilmiştir. İşlevsel olarak aynıdırlar.

Vitest, tek bir Vitest süreci içinde birden fazla proje yapılandırması tanımlama imkanı sunar. Bu özellik özellikle monorepo yapıları için kullanışlıdır; ayrıca resolve.alias, plugins veya test.browser gibi farklı yapılandırmalarla testleri çalıştırmak için de kullanılabilir.

Projeleri Tanımlama ​

Projeleri ana yapılandırmanızda tanımlayabilirsiniz:

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

export default defineConfig({
  test: {
    projects: ['packages/*'],
  },
});

Proje yapılandırmaları, projelerinize referans veren yerleşik yapılandırmalar, dosyalar veya glob kalıplarıdır. Örneğin, projelerinizi içeren packages adında bir klasörünüz varsa, ana Vitest yapılandırmanızda bir dizi tanımlayabilirsiniz:

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

export default defineConfig({
  test: {
    projects: ['packages/*'],
  },
});

Vitest, packages içindeki her klasörü, içinde bir yapılandırma dosyası olmasa bile ayrı bir proje olarak ele alacaktır. Bu glob kalıbı herhangi bir dosyayla eşleşirse, adında vitest olmasa veya alışılmadık bir dosya uzantısına sahip olsa bile bir Vitest yapılandırması olarak kabul edilecektir.

WARNING

Vitest, ana vitest.config dosyasını, yapılandırmada açıkça belirtilmediği sürece bir proje olarak kabul etmez. Sonuç olarak, ana yapılandırma yalnızca reporters ve coverage gibi genel seçenekleri etkileyecektir. Vitest'in ana yapılandırma dosyasında belirtilen apply, config, configResolved veya configureServer gibi belirli eklenti kancalarını her zaman çalıştıracağını unutmayın. Vitest ayrıca genel kurulumları ve özel kapsama sağlayıcısını çalıştırmak için aynı eklentileri kullanır.

Projeleri yapılandırma dosyalarıyla da tanımlayabilirsiniz:

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

export default defineConfig({
  test: {
    projects: ['packages/*/vitest.config.{e2e,unit}.ts'],
  },
});

Bu kalıp yalnızca uzantıdan önce e2e veya unit içeren vitest.config dosyasına sahip projeleri kapsar.

Projeleri satır içi yapılandırma kullanarak da tanımlayabilirsiniz. Yapılandırma her iki sözdizimini de aynı anda destekler.

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

export default defineConfig({
  test: {
    projects: [
      // `packages` klasöründeki her klasör ve dosyayla eşleşir
      'packages/*',
      {
        // kök yapılandırmadan seçenekleri devralmak için "extends: true" ekleyin
        extends: true,
        test: {
          include: ['tests/**/*.{browser}.test.{ts,js}'],
          // satır içi yapılandırmalar kullanırken bir ad belirtmeniz önerilir
          name: 'happy-dom',
          environment: 'happy-dom',
        },
      },
      {
        test: {
          include: ['tests/**/*.{node}.test.{ts,js}'],
          // ad etiketinin rengi değiştirilebilir
          name: { label: 'node', color: 'green' },
          environment: 'node',
        },
      },
    ],
  },
});

WARNING

Tüm projelerin benzersiz adları olmalıdır; aksi takdirde Vitest hata verecektir. Satır içi yapılandırmada bir ad sağlanmazsa, Vitest otomatik olarak bir sayı atayacaktır. Glob sözdizimiyle tanımlanan proje yapılandırmaları için Vitest, varsayılan olarak en yakın package.json dosyasındaki "name" özelliğini veya eğer yoksa klasör adını kullanacaktır.

Projeler bazı yapılandırma özelliklerini desteklemez. Daha iyi tip güvenliği için, proje yapılandırma dosyalarında defineConfig yerine defineProject yöntemini kullanın:

ts
// @errors: 2769
import { defineProject } from 'vitest/config';

export default defineProject({
  test: {
    environment: 'jsdom',
    // "reporters" bir proje yapılandırmasında desteklenmez,
    // bu yüzden bir hata gösterecektir
    reporters: ['json'],
  },
});

Testleri Çalıştırma ​

Testleri çalıştırmak için ana package.json dosyanızda bir komut dosyası tanımlayın:

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

Şimdi testler paket yöneticiniz kullanılarak çalıştırılabilir:

bash
npm run test
bash
yarn test
bash
pnpm run test
bash
bun run test

Yalnızca tek bir proje içinde testleri çalıştırmanız gerekiyorsa, --project CLI seçeneğini kullanın:

bash
npm run test --project e2e
bash
yarn test --project e2e
bash
pnpm run test --project e2e
bash
bun run test --project e2e

TIP

CLI seçeneği --project birden fazla projeyi filtrelemek için birden fazla kez kullanılabilir:

bash
npm run test --project e2e --project unit
bash
yarn test --project e2e --project unit
bash
pnpm run test --project e2e --project unit
bash
bun run test --project e2e --project unit

Yapılandırma ​

Yapılandırma seçeneklerinin hiçbiri ana yapılandırma dosyasından otomatik olarak devralınmaz. Paylaşılan bir yapılandırma dosyası oluşturabilir ve bunu proje yapılandırmasıyla kendiniz birleştirebilirsiniz:

ts
import { defineProject, mergeConfig } from 'vitest/config';
import configShared from '../vitest.shared.js';

export default mergeConfig(
  configShared,
  defineProject({
    test: {
      environment: 'jsdom',
    },
  })
);

Ek olarak, ana yapılandırmanızdan devralmak için extends seçeneğini kullanabilirsiniz. Tüm seçenekler birleştirilecektir.

ts
import { defineConfig } from 'vitest/config';
import react from '@vitejs/plugin-react';

export default defineConfig({
  plugins: [react()],
  test: {
    pool: 'threads',
    projects: [
      {
        // eklentiler ve havuz gibi bu yapılandırmadan seçenekleri devralacaktır
        extends: true,
        test: {
          name: 'unit',
          include: ['**/*.unit.test.ts'],
        },
      },
      {
        // bu yapılandırmadan hiçbir seçeneği devralmayacaktır
        // bu varsayılan davranıştır
        extends: false,
        test: {
          name: 'integration',
          include: ['**/*.integration.test.ts'],
        },
      },
    ],
  },
});

Desteklenmeyen Seçenekler

Bazı yapılandırma seçeneklerine bir proje yapılandırmasında izin verilmez. En önemlileri:

  • coverage: kod kapsamı tüm süreç için yapılır
  • reporters: yalnızca ana düzeydeki raporlayıcılar desteklenebilir
  • resolveSnapshotPath: yalnızca ana düzeydeki çözümleyici dikkate alınır
  • test çalıştırıcılarını etkilemeyen diğer tüm seçenekler

Bir proje yapılandırması içinde desteklenmeyen tüm yapılandırma seçenekleri, "Yapılandırma" kılavuzunda * işaretiyle işaretlenmiştir. Bunlar ana yapılandırma dosyasında bir kez tanımlanmalıdır.

Pager
Önceki sayfaTest Filtreleme
Sonraki sayfaRaporlayıcılar

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

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/guide/projects

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

Copyright (c) 2021-Present Vitest Team