Skip to content
Vitest 1
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

Raporlayıcılar

Kapsam

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

Sahtecilik (Mocking)

Türleri Test Etme

Vitest Arayüzü

Tarayıcı Modu

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

Performansı İyileştirme

API

Test API Başvurusu

Sahte Fonksiyonlar

Vi

expect

expectTypeOf

assert

assertType

Yapılandırma

Vitest Yapılandırma Dosyasını Yönetme

Vitest'in Yapılandırılması

Bu sayfada

Çalışma Alanı ​

Örnek Proje

GitHub - Çevrimiçi Deneyin

Vitest, çalışma alanı yapılandırma dosyası kullanarak monorepo'lar için yerleşik destek sunar. Projelerinizin kurulumlarını tanımlamak için bir çalışma alanı oluşturabilirsiniz.

Çalışma Alanı Tanımlama ​

Bir çalışma alanı, kök dizininde bir vitest.workspace veya vitest.projects dosyasına sahip olmalıdır (varsa yapılandırma dosyanızla aynı klasörde). Vitest, bu dosya için ts/js/json uzantılarını destekler.

Çalışma alanı yapılandırma dosyası, projelerinize referans veren bir dosya veya glob kalıpları listesiyle varsayılan bir dışa aktarma içermelidir. Örneğin, projelerinizi içeren packages adlı bir klasörünüz varsa, aşağıdaki yapılandırma dosyasıyla bir çalışma alanı tanımlayabilirsiniz:

ts
export default ['packages/*'];

packages içindeki her klasör, içinde bir yapılandırma dosyası olmasa bile Vitest tarafından ayrı bir proje olarak kabul edilir.

WARNING

Vitest, kök yapılandırmayı bir çalışma alanı projesi olarak kabul etmez (bu nedenle, bu yapılandırmada belirtilmediği sürece include içinde belirtilen testleri çalıştırmaz).

Ayrıca, projeleri yapılandırma dosyalarıyla da referans alabilirsiniz:

ts
export default ['packages/*/vitest.config.{e2e,unit}.ts'];

Bu desen, dosya adının uzantısından önce e2e ve unit ifadelerini içeren vitest.config dosyalarına sahip projeleri dahil edecektir.

WARNING

Glob kalıbıyla dosya adlarına başvuruyorsanız, yapılandırma dosyanızın vite.config veya vitest.config ile başladığından emin olun. Aksi takdirde Vitest onu yok sayacaktır.

Ayrıca, satır içi yapılandırma ile projeler de tanımlayabilirsiniz. Çalışma alanı dosyası, aynı anda her iki sözdizimini de kullanmayı destekler.

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

// defineWorkspace, geliştirici deneyimini iyileştiren kullanışlı tür ipuçları sunar
export default defineWorkspace([
  'packages/*',
  {
    // iki yapılandırmayı birleştirmek için "extends" ekleyin
    extends: './vite.config.js',
    test: {
      include: ['tests/**/*.{browser}.test.{ts,js}'],
      // doğrudan yapılandırmalar kullanırken bir ad tanımlamanız önerilir
      name: 'happy-dom',
      environment: 'happy-dom',
    },
  },
  {
    test: {
      include: ['tests/**/*.{node}.test.{ts,js}'],
      name: 'node',
      environment: 'node',
    },
  },
]);

WARNING

Tüm projelerin benzersiz adları olmalıdır. Aksi takdirde, Vitest hata verecektir. Doğrudan yapılandırmanın içinde bir ad sağlamazsanız, Vitest bir sayı atayacaktır. Glob sözdizimiyle tanımlanan bir proje yapılandırmasının içinde bir ad sağlamazsanız, Vitest varsayılan olarak dizin adını kullanacaktır.

Doğrudan yapılandırmalar kullanmıyorsanız, kök dizininizde küçük bir JSON dosyası oluşturabilirsiniz:

json
["packages/*"]

Çalışma alanı projeleri, tüm yapılandırma özelliklerinin tamamını desteklemez. Daha iyi tür güvenliği için, proje yapılandırma dosyalarının içinde defineConfig yöntemi yerine defineProject kullanın:

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

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

Testleri Çalıştırma ​

Çalışma alanının içindeki testleri çalıştırmak için, kök package.json dosyanızda bir komut dosyası tanımlayın:

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

Artık testler paket yöneticinizle kullanılarak çalıştırılabilir:

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

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

bash
npm run test --project e2e

TIP

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

bash
npm run test --project e2e --project unit

Yapılandırma ​

Yapılandırma seçeneklerinin hiçbiri kök düzeydeki yapılandırma dosyasından 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',
    },
  })
);

Ayrıca, yapılandırma seçeneklerinden bazılarına bir proje yapılandırmasında izin verilmez. En önemlileri:

  • coverage: kapsam, tüm çalışma alanı genelinde yapılır
  • reporters: yalnızca kök düzeydeki raporlayıcılar desteklenebilir
  • resolveSnapshotPath: yalnızca kök düzeydeki çözümleyici dikkate alınır
  • test koşucularını etkilemeyen diğer tüm seçenekler

TIP

Bir proje yapılandırmasının içinde desteklenmeyen tüm yapılandırma seçenekleri, "Yapılandırma" sayfasında yanlarında * işaretine sahiptir.

Kapsam (Coverage) ​

Çalışma alanı projeleri için kapsam, varsayılan olarak etkindir. Ancak all seçeneği etkinse ve bazı projelerinizde geleneksel olmayan uzantılar kullanıyorsanız, kök yapılandırma dosyanızda bu uzantıyı işleyen bir eklentiye sahip olmanız gerekir.

Örneğin, Vue dosyalarını kullanan ve kendi yapılandırma dosyasına sahip bir paketiniz varsa, ancak dosyaların bazıları testlerinizde içe aktarılmamışsa, kapsam kullanılmayan dosyaların kullanımını analiz etmeye çalışırken başarısız olur. Bunun nedeni, proje yapılandırması yerine kök yapılandırmaya dayanmasıdır.

Pager
Önceki sayfaÖzellikler
Sonraki sayfaKomut Satırı Arayüzü

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

Copyright (c) 2024 Mithril Contributors

https://v1.vitest.dev/guide/workspace

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

Copyright (c) 2024 Mithril Contributors