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

API

Node API

Gelişmiş API

Vitest API

Test Projesi

TestSpecification

Test Task API

TestCase

TestSuite

TestModule

TestCollection

Eklenti API'si

Çalıştırıcı API'si

Raporlayıcılar

Görev Meta Verileri

Kılavuz

Testleri Çalıştırma

Raporlayıcıları Genişletme

Özel Havuz

Vitest'i Yapılandırma

Test API Referansları

Bu sayfada

Eklenti API'si 3.1.0+ ​

WARNING

Bu, ileri düzey bir API'dir. Yalnızca testleri çalıştırmak istiyorsanız, muhtemelen buna ihtiyacınız yoktur. Öncelikle kütüphane geliştiricileri tarafından kullanılır.

Bu kılavuz, Vite eklentileri ile nasıl çalışılacağını bildiğinizi varsayar.

Vitest, 3.1 sürümünden bu yana deneysel bir configureVitest eklenti kancasını desteklemektedir. Bu API hakkındaki tüm geri bildirimlere GitHub üzerinden açığız.

ts
import type { Vite, VitestPluginContext } from 'vitest/node';

export function plugin(): Vite.Plugin {
  return {
    name: 'vitest:my-plugin',
    configureVitest(context: VitestPluginContext) {
      // ...
    },
  };
}
ts
/// <reference types="vitest/config" />

import type { Plugin } from 'vite';

export function plugin(): Plugin {
  return {
    name: 'vitest:my-plugin',
    transform() {
      // ...
    },
    configureVitest(context) {
      // ...
    },
  };
}

TypeScript

Vitest, Vite'ın yalnızca tür içe aktarımlarını bir Vite ad alanı aracılığıyla yeniden dışa aktarır; bunu sürümlerinizi senkronize tutmak için kullanabilirsiniz. Ancak, hem Vite hem de Vitest için bir eklenti yazıyorsanız, vite giriş noktasından Plugin türünü kullanmaya devam edebilirsiniz. Sadece configureVitest'in doğru şekilde genişletilmesi için vitest/config'in bir yerde referans alındığından emin olun:

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

reporter.onInit'in aksine, bu kanca Vitest yaşam döngüsünün erken aşamalarında çalışır ve coverage ve reporters gibi yapılandırmalarda değişiklik yapmanıza olanak tanır. Daha önemli bir değişiklik ise, eklentiniz genel yapılandırmada değil de bir test projesinde tanımlanmışsa, genel yapılandırmayı değiştirebilmenizdir.

Bağlam ​

project ​

Eklentinin ait olduğu mevcut test projesi.

Tarayıcı Modu

Tarayıcı özelliğine güveniyorsanız, project.browser alanının henüz ayarlanmadığını unutmayın. Bunun yerine reporter.onBrowserInit olayını kullanın.

vitest ​

Genel Vitest örneği. vitest.config özelliğini doğrudan değiştirerek genel yapılandırmayı değiştirebilirsiniz:

ts
vitest.config.coverage.enabled = false;
vitest.config.reporters.push([['my-reporter', {}]]);

Yapılandırma Çözüldü

Vitest'in yapılandırmayı zaten çözdüğünü unutmayın, bu nedenle bazı türler standart kullanıcı yapılandırmasından farklı olabilir. Bu aynı zamanda, setupFile gibi bazı özelliklerin yeniden çözülmeyeceği anlamına gelir. Yeni dosyalar ekliyorsanız, bunların önce çözümlendiğinden emin olun.

Bu aşamada raporlayıcılar henüz oluşturulmamıştır. Bu nedenle, vitest.reporters'ı değiştirmek hiçbir etkisi olmayacaktır çünkü bu değişiklik üzerine yazılacaktır. Kendi raporlayıcınızı eklemeniz gerekiyorsa, bunun yerine yapılandırmayı değiştirin.

injectTestProjects ​

ts
function injectTestProjects(
  config: TestProjectConfiguration | TestProjectConfiguration[]
): Promise<TestProject[]>;

Bu yöntem, bir yapılandırma glob deseni, bir yapılandırma dosyasının dosya yolunu veya satır içi bir yapılandırmayı kabul eder. Çözümlenmiş test projelerinden oluşan bir dizi döndürür.

ts
// özel bir takma ad ile tek bir proje enjekte et
const newProjects = await injectTestProjects({
  // 'extends' anahtar kelimesini kullanarak mevcut proje yapılandırmasını devralabilirsiniz
  // zaten var olan bir isimle bir projeniz olamayacağını unutmayın,
  // bu nedenle özel bir ad belirlemek iyi bir yöntemdir
  extends: project.vite.config.configFile,
  test: {
    name: 'my-custom-alias',
    alias: {
      customAlias: resolve('./custom-path.js'),
    },
  },
});

Projeler Filtrelenir

Vitest, yapılandırma çözümlemesi sırasında projeleri filtreler, bu nedenle kullanıcı bir filtre tanımladıysa, enjekte edilen proje filtreyle eşleşmediği sürece çözümlenmeyebilir. Test projenizi her zaman dahil etmek için vitest.config.project seçeneğini kullanarak filtreyi güncelleyebilirsiniz:

ts
vitest.config.project.push('my-project-name');

Bunun yalnızca injectTestProjects yöntemiyle eklenen projeleri etkileyeceğini unutmayın.

Mevcut Yapılandırmaya Referans Verme

Kullanıcı yapılandırmasını korumak istiyorsanız, extends özelliğini belirtebilirsiniz. Diğer tüm özellikler, kullanıcı tanımlı yapılandırma ile birleştirilecektir.

Projenin configFile'ına Vite'ın yapılandırmasında erişilebilir: project.vite.config.configFile.

Bunun name'i de devralacağını unutmayın - Vitest aynı ada sahip birden fazla projeye izin vermez, bu nedenle bu bir hata atacaktır. Farklı bir ad belirttiğinizden emin olun. Mevcut ada project.name özelliği aracılığıyla erişebilir ve kullanılan tüm adlar vitest.projects dizisinde mevcuttur.

Pager
Önceki sayfaTestCollection
Sonraki sayfaÇalıştırıcı API'si

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

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/advanced/api/plugin

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

Copyright (c) 2021-Present Vitest Team