Skip to content
Vitest 2
Main Navigation KılavuzAPIYapılandırmaTarayıcı Moduİleri
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

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ü

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

Profiling Test Performance

Performansı İyileştirme

Bu sayfada

Çalışma Alanı ​

Örnek Proje

GitHub - Çevrimiçi Dene

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

Çalışma Alanı Tanımlama ​

Bir çalışma alanı, kök dizininde (kök yapılandırma dosyanızla aynı dizinde veya mevcut değilse çalışma dizininde bulunur) bir vitest.workspace veya vitest.projects dosyası içermelidir. Vitest, bu dosya için ts, js ve json uzantılarını destekler.

ADLANDIRMA

Lütfen bu özelliğin workspace olarak adlandırıldığını, workspaces (sonunda "s" olmadan) olmadığını unutmayın.

Çalışma alanı yapılandırma dosyası, projelerinize referans veren bir dosya listesi veya glob kalıpları içeren varsayılan bir dışa aktarım sağlamalıdır. Örneğin, projelerinizi içeren packages adında bir klasörünüz varsa, bu yapılandırma dosyasıyla bir çalışma alanı tanımlayabilirsiniz:

ts
export default ['packages/*'];

Vitest, packages içindeki her klasörü, içinde bir yapılandırma dosyası olmasa bile ayrı bir proje olarak değerlendirecektir. Vitest 2.1'den beri, bu glob kalıbı herhangi bir dosyayla eşleşirse, adında vitest olmasa bile bir Vitest yapılandırması olarak kabul edilecektir.

WARNING

Vitest, kök vitest.config dosyasını, çalışma alanı yapılandırmasında açıkça belirtilmedikçe bir çalışma alanı projesi olarak kabul etmez. Sonuç olarak, kök yapılandırma yalnızca reporters ve coverage gibi genel seçenekler üzerinde etkili olacaktır.

Projeleri yapılandırma dosyalarıyla da referans gösterebilirsiniz:

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

Bu desen, yalnızca uzantıdan önce e2e veya unit içeren bir vitest.config dosyasına sahip projeleri kapsayacaktır.

Projeleri dahili yapılandırma kullanarak da tanımlayabilirsiniz. Çalışma alanı dosyası her iki sözdizimini de aynı anda destekler.

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

// defineWorkspace geliştirici deneyimi için faydalı tür ipuçları sağlar
export default defineWorkspace([
  // `packages` klasöründeki her klasör ve dosyayla eşleşir
  'packages/*',
  {
    // iki yapılandırmayı birleştirmek için "extends" kullanın
    extends: './vite.config.js',
    test: {
      include: ['tests/**/*.{browser}.test.{ts,js}'],
      // dahili 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 bir hata fırlatacaktır. Dahili yapılandırmada bir ad sağlanmazsa, Vitest 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 hiçbiri bulunamazsa klasör adını kullanacaktır.

Dahili 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 özelliklerini desteklemez. Daha iyi tür güvenliği için, proje yapılandırma dosyalarında defineConfig yerine defineProject yöntemini tercih edin:

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 verecektir
    reporters: ['json'],
  },
});

Testleri Çalıştırma ​

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

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

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

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

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

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

TIP

--project CLI seçeneği, birden fazla projeyi filtrelemek için birden çok 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 test --project e2e --project unit

Yapılandırma ​

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

defineWorkspace düzeyinde, kök düzeyindeki yapılandırmanızdan miras almak için extends seçeneğini kullanabilirsiniz. Tüm seçenekler birleştirilecektir.

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

export default defineWorkspace([
  {
    extends: './vitest.config.ts',
    test: {
      name: 'unit',
      include: ['**/*.unit.test.ts'],
    },
  },
  {
    extends: './vitest.config.ts',
    test: {
      name: 'integration',
      include: ['**/*.integration.test.ts'],
    },
  },
]);

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

  • coverage: kapsama tüm çalışma alanı için gerçekleştirilir
  • reporters: yalnızca kök düzeyindeki raporlayıcılar desteklenir
  • resolveSnapshotPath: yalnızca kök düzeyindeki çözümleyici dikkate alınır
  • test çalıştırıcılarını etkilemeyen diğer tüm seçenekler

TIP

Bir proje yapılandırmasında desteklenmeyen tüm yapılandırma seçenekleri, "Yapılandırma" kılavuzunda * işaretiyle belirtilmiştir.

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

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

Copyright (c) 2024 Mithril Contributors

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

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

Copyright (c) 2024 Mithril Contributors