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

Vitest'i Yapılandırma ​

Vite kullanıyorsanız ve bir vite.config dosyanız varsa, Vitest bu dosyayı okuyarak eklentilerle uyum sağlar ve Vite uygulamanız için gerekli yapılandırmayı yapar. Testleriniz için farklı bir yapılandırma kullanmak isterseniz veya ana uygulamanız özellikle Vite'a bağlı değilse, aşağıdaki yöntemleri kullanabilirsiniz:

  • Daha yüksek önceliğe sahip olacak ve vite.config.ts dosyasındaki yapılandırmayı geçersiz kılacak bir vitest.config.ts dosyası oluşturun. (Vitest, geleneksel JS ve TS uzantılarını destekler, ancak json uzantısını desteklemez.) Bu, vite.config dosyanızdaki tüm seçeneklerin yoksayılacağı anlamına gelir.
  • CLI'ye --config seçeneğini geçirin, örneğin vitest --config ./path/to/vitest.config.ts.
  • defineConfig üzerinde process.env.VITEST veya mode özelliğini kullanarak (--mode ile geçersiz kılınmazsa test/benchmark olarak ayarlanır) vite.config.ts içinde farklı yapılandırmaları koşullu olarak uygulayabilirsiniz.

vitest'in kendisini yapılandırmak için, Vite yapılandırmanıza test özelliğini ekleyin. Ayrıca, defineConfig'i vite'in kendisinden içe aktarıyorsanız, yapılandırma dosyanızın en üstüne bir üç eğik çizgi komutu kullanarak Vitest türlerine bir referans eklemeniz gerekecektir.

Yapılandırma Örneklerini Aç

vite'den defineConfig kullanırken şunları izlemelisiniz:

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

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

<reference types="vitest" /> Vitest 4'te çalışmayı durduracak, ancak şimdiden 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.
  },
});

vitest/config'den defineConfig kullanırken şunları izlemelisiniz:

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

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

Gerekirse Vitest'in varsayılan seçeneklerini alıp genişletebilirsiniz:

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

export default defineConfig({
  test: {
    exclude: [...configDefaults.exclude, 'packages/template/*'],
  },
});

Ayrı bir vitest.config.js kullanırken, gerekirse Vite'ın seçeneklerini başka bir yapılandırma dosyasından da genişletebilirsiniz:

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

export default mergeConfig(
  viteConfig,
  defineConfig({
    test: {
      exclude: ['packages/template/*'],
    },
  })
);

Vite yapılandırmanız bir fonksiyon olarak tanımlanmışsa, yapılandırmayı şu şekilde tanımlayabilirsiniz:

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

export default defineConfig(configEnv =>
  mergeConfig(
    viteConfig(configEnv),
    defineConfig({
      test: {
        exclude: ['packages/template/*'],
      },
    })
  )
);

WARNING

Bu sayfadaki tüm listelenen seçenekler yapılandırmanın içinde bir test özelliği içinde bulunur:

ts
export default defineConfig({
  test: {
    exclude: [],
  },
});

Vitest, Vite yapılandırmasını kullandığı için, Vite'den herhangi bir yapılandırma seçeneğini de kullanabilirsiniz. Örneğin, genel değişkenleri tanımlamak için define veya takma adları tanımlamak için resolve.alias - bu seçenekler en üst düzeyde tanımlanmalıdır, bir test özelliği içinde değil.

Proje yapılandırması içinde desteklenmeyen yapılandırma seçeneklerinin yanında * işareti bulunur. Bu, yalnızca kök Vitest yapılandırmasında ayarlanabileceği anlamına gelir.

include ​

  • Tip: string[]
  • Varsayılan: ['**/*.{test,spec}.?(c|m)[jt]s?(x)']
  • CLI: vitest [...include], vitest **/*.test.js

Test dosyalarınızla eşleşen glob desenlerinin bir listesi.

NOT

Kapsam kullanırken, Vitest otomatik olarak test dosyalarını include desenlerini kapsamın varsayılan exclude desenlerine ekler. Bkz. coverage.exclude.

exclude ​

  • Tip: string[]
  • Varsayılan: ['**/node_modules/**', '**/dist/**', '**/cypress/**', '**/.{idea,git,cache,output,temp}/**', '**/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc,cypress,tsup,build,eslint,prettier}.config.*']
  • CLI: vitest --exclude "**/excluded-file"

Test dosyalarınızdan hariç tutulacak glob desenlerinin bir listesi.

WARNING

Bu seçeneğin kapsam üzerinde bir etkisi yoktur. Kapsam raporundan belirli dosyaları kaldırmanız gerekiyorsa, coverage.exclude kullanın.

Bu, bir CLI bayrağıyla sağlandığında yapılandırmanızı geçersiz kılmayan tek seçenektir. --exclude bayrağı aracılığıyla eklenen tüm glob desenleri yapılandırmanın exclude'ine eklenecektir.

includeSource ​

  • Tip: string[]
  • Varsayılan: []

Kaynak içi test dosyaları için dahil edilecek glob desenleri.

Tanımlandığında, Vitest içinde import.meta.vitest bulunan tüm eşleşen dosyaları çalıştıracaktır.

name ​

  • Tip: string | { label: string, color?: LabelColor }

Test projesine veya Vitest sürecine özel bir ad atar. Ad, CLI ve UI'da görünür olacak ve Node.js API'sinde project.name aracılığıyla erişilebilir olacaktır.

CLI ve UI tarafından kullanılan renk, color özelliği olan bir nesne sağlayarak değiştirilebilir.

server ​

  • Tip: { sourcemap?, deps?, ... }

Vite-Node sunucu seçenekleri.

server.sourcemap ​

  • Tip: 'inline' | boolean
  • Varsayılan: 'inline'

Modüllere satır içi kaynak haritası enjekte eder.

server.debug ​

  • Tip: { dumpModules?, loadDumppedModules? }

Vite-Node hata ayıklayıcı seçenekleri.

server.debug.dumpModules ​

  • Tip: boolean | string

Dönüştürülmüş modülü dosya sistemine kaydeder. Bir dize geçirmek, belirtilen yola dökülmesini sağlar.

server.debug.loadDumppedModules ​

  • Tip: boolean

Dökülmüş modülü dosya sisteminden mevcut olduğunda okur. Dosya sisteminden döküm sonucunu değiştirerek hata ayıklama için faydalıdır.

server.deps ​

  • Tip: { external?, inline?, ... }

Bağımlılık çözümlemesinin işlenmesi.

server.deps.external ​

  • Tip: (string | RegExp)[]
  • Varsayılan: [/\/node_modules\//]

Haricileştirme, Vite'ın paketi yerel Node'a bypass etmesi anlamına gelir. Haricileştirilmiş bağımlılıklar Vite'ın dönüştürücülerine ve çözümleyicilerine uygulanmayacak, bu nedenle yeniden yüklemede HMR'yi desteklemezler. Varsayılan olarak, node_modules içindeki tüm paketler haricileştirilir.

Bu seçenekler, node_modules içinde yazıldığı gibi veya deps.moduleDirectories içinde belirtildiği gibi paket adlarını destekler. Örneğin, packages/some-name içinde bulunan @company/some-name paketi some-name olarak belirtilmeli ve packages deps.moduleDirectories'e dahil edilmelidir. Temel olarak, Vitest her zaman dosya yolunu kontrol eder, gerçek paket adını değil.

Regexp kullanılırsa, Vitest bunu paket adında değil, dosya yolunda uygular.

server.deps.inline ​

  • Type: (string | RegExp)[] | true
  • Default: []

Vite, satır içi modülleri işleyecektir. Bu, ESM formatında (Node'un işleyemediği) .js gönderen paketlerle başa çıkmak için faydalı olabilir.

Eğer true ise, her bağımlılık satır içine alınacaktır. ssr.noExternal kısmında belirtilen tüm bağımlılıklar varsayılan olarak satır içine alınacaktır.

server.deps.fallbackCJS ​

  • Tip boolean
  • Varsayılan: false

Bir bağımlılık geçerli bir ESM paketi olduğunda, yola göre cjs sürümünü tahmin etmeye çalışın. Bu, bir bağımlılığın yanlış ESM dosyasına sahip olması durumunda faydalı olabilir.

Bu, bir paketin ESM ve CJS modunda farklı mantığa sahip olması durumunda bazı uyumsuzluklara yol açabilir.

server.deps.cacheDir ​

  • Tip string
  • Varsayılan: 'node_modules/.vite'

Önbellek dosyalarının kaydedileceği dizin.

deps ​

  • Tip: { optimizer?, ... }

Bağımlılık çözümlemesinin işlenmesi.

deps.optimizer ​

  • Tip: { ssr?, web? }
  • Ayrıca bakınız: Bağımlılık Optimizasyon Seçenekleri

Bağımlılık optimizasyonunu etkinleştirin. Çok sayıda testiniz varsa, bu performanslarını artırabilir.

Vitest, include içinde listelenen harici kütüphaneyle karşılaştığında, esbuild kullanılarak tek bir dosyada paketlenecek ve bir bütün modül olarak içe aktarılacaktır. Bunun birkaç nedeni vardır:

  • Çok sayıda içe aktarma içeren paketleri içe aktarmak performans açısından maliyetlidir. Bunları tek bir dosyada paketleyerek çok zaman kazanabiliriz.
  • UI kütüphanelerini içe aktarmak performans açısından maliyetlidir çünkü Node.js içinde çalışmak için tasarlanmamışlardır.
  • alias yapılandırmanız artık paketlenmiş paketler içinde de geçerlidir.
  • Testlerinizdeki kod, tarayıcıda çalıştığına daha yakın çalışır.

Yalnızca deps.optimizer?.[mode].include seçeneğinde listelenen paketlerin paketlendiğini unutmayın (bazı eklentiler bunu Svelte gibi otomatik olarak doldurur). Mevcut seçenekler hakkında daha fazla bilgiyi Vite belgelerinde okuyabilirsiniz (Vitest disable ve noDiscovery seçeneklerini desteklemez). Varsayılan olarak, Vitest jsdom ve happy-dom ortamları için optimizer.web'i, node ve edge ortamları için optimizer.ssr'yi kullanır, ancak bu transformMode ile yapılandırılabilir.

Bu seçenekler ayrıca optimizeDeps yapılandırmanızı da devralır (web için Vitest optimizeDeps'i, ssr için ssr.optimizeDeps'i genişletecektir). deps.optimizer içinde include/exclude seçeneğini yeniden tanımlarsanız, testleri çalıştırırken optimizeDeps'inizi genişletecektir. Vitest, include'deki aynı seçenekleri, exclude içinde listelenmişlerse otomatik olarak kaldırır.

TIP

node_modules kodunuzu hata ayıklama için düzenleyemezsiniz, çünkü kod aslında cacheDir veya test.cache.dir dizininizde bulunur. console.log ifadeleriyle hata ayıklamak istiyorsanız, doğrudan düzenleyin veya deps.optimizer?.[mode].force seçeneğiyle yeniden paketlemeyi zorlayın.

deps.optimizer.{mode}.enabled ​

  • Tip: boolean
  • Varsayılan: false

Bağımlılık optimizasyonunu etkinleştirin.

deps.web ​

  • Tip: { transformAssets?, ... }

Dönüştürme modu web olarak ayarlandığında harici dosyalara uygulanan seçenekler. Varsayılan olarak, jsdom ve happy-dom web modunu kullanırken, node ve edge ortamları ssr dönüştürme modunu kullanır, bu nedenle bu seçenekler bu ortamlar içindeki dosyaları etkilemeyecektir.

Genellikle, node_modules içindeki dosyalar haricileştirilir, ancak bu seçenekler server.deps.external içindeki dosyaları da etkiler.

deps.web.transformAssets ​

  • Tip: boolean
  • Varsayılan: true

Vitest, varlık (.png, .svg, .jpg, vb.) dosyalarını işlemeli ve bunları Vite'ın tarayıcıda yaptığı gibi çözümlemeli midir?

Bu modül, sorgu belirtilmezse, varlığın yoluna eşit bir varsayılan dışa aktarmaya sahip olur.

WARNING

Şu anda, bu seçenek yalnızca vmThreads ve vmForks havuzlarında geçerlidir.

deps.web.transformCss ​

  • Tip: boolean
  • Varsayılan: true

Vitest, CSS (.css, .scss, .sass, vb.) dosyalarını işlemeli ve bunları Vite'ın tarayıcıda yaptığı gibi çözümlemeli midir?

CSS dosyaları css seçenekleriyle devre dışı bırakılırsa, bu seçenek yalnızca ERR_UNKNOWN_FILE_EXTENSION hatalarını susturacaktır.

WARNING

Şu anda, bu seçenek yalnızca vmThreads ve vmForks havuzlarında geçerlidir.

deps.web.transformGlobPattern ​

  • Tip: RegExp | RegExp[]
  • Varsayılan: []

Dönüştürülmesi gereken harici dosyaları eşleştirmek için Regexp deseni.

Varsayılan olarak, node_modules içindeki dosyalar haricileştirilir ve dönüştürülmez, CSS veya bir varlık olmadığı ve ilgili seçenek devre dışı bırakılmadığı sürece.

WARNING

Şu anda, bu seçenek yalnızca vmThreads ve vmForks havuzlarında geçerlidir.

deps.interopDefault ​

  • Tip: boolean
  • Varsayılan: true

CJS modülünün varsayılanını adlandırılmış dışa aktarmalar olarak yorumlar. Bazı bağımlılıklar yalnızca CJS modüllerini paketler ve bir paket require sözdizimi yerine import sözdizimi kullanılarak içe aktarıldığında Node.js'nin statik olarak analiz edebileceği adlandırılmış dışa aktarmaları kullanmaz. Node ortamında bu tür bağımlılıkları adlandırılmış dışa aktarmalar kullanarak içe aktarırken şu hatayı göreceksiniz:

import { read } from 'fs-jetpack';
         ^^^^
SyntaxError: Named export 'read' not found. The requested module 'fs-jetpack' is a CommonJS module, which may not support all module.exports as named exports.
CommonJS modules can always be imported via the default export.

Vitest statik analiz yapmaz ve çalışan kodunuzdan önce başarısız olamaz, bu nedenle bu özellik devre dışı bırakılırsa testleri çalıştırırken büyük olasılıkla bu hatayı göreceksiniz:

TypeError: createAsyncThunk is not a function
TypeError: default is not a function

Varsayılan olarak, Vitest bunu atlamak için bir paketleyici kullandığınızı varsayar ve başarısız olmaz, ancak kodunuz işlenmiyorsa bu davranışı manuel olarak devre dışı bırakabilirsiniz.

deps.moduleDirectories ​

  • Tip: string[]
  • Varsayılan: ['node_modules']

Modül dizinleri olarak ele alınması gereken dizinlerin bir listesi. Bu yapılandırma seçeneği vi.mock davranışını etkiler: fabrika sağlanmadığında ve taklit ettiğiniz şeyin yolu moduleDirectories değerlerinden biriyle eşleştiğinde, Vitest taklidi projenin kökünde bir __mocks__ klasörü arayarak çözmeye çalışacaktır.

Bu seçenek, bağımlılıkları haricileştirirken bir dosyanın modül olarak ele alınıp alınmayacağını da etkiler. Varsayılan olarak, Vitest harici modülleri yerel Node.js ile Vite dönüştürme adımını atlayarak içe aktarır.

Bu seçeneği ayarlamak, varsayılanı geçersiz kılacaktır, yine de node_modules'da paketleri aramak istiyorsanız, diğer seçeneklerle birlikte onu da dahil edin:

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

export default defineConfig({
  test: {
    deps: {
      moduleDirectories: ['node_modules', path.resolve('../../packages')],
    },
  },
});

runner ​

  • Tip: VitestRunnerConstructor
  • Varsayılan: Testleri çalıştırırken node, benchmarkları çalıştırırken benchmark

Özel bir test çalıştırıcısının yolu. Bu gelişmiş bir özelliktir ve özel kütüphane çalıştırıcılarıyla kullanılması önerilir. Daha fazla bilgiyi belgelerde bulabilirsiniz.

benchmark ​

  • Tip: { include?, exclude?, ... }

vitest bench çalıştırılırken kullanılan seçenekler.

benchmark.include ​

  • Tip: string[]
  • Varsayılan: ['**/*.{bench,benchmark}.?(c|m)[jt]s?(x)']

Benchmark test dosyaları için dahil edilecek glob desenleri.

benchmark.exclude ​

  • Tip: string[]
  • Varsayılan: ['node_modules', 'dist', '.idea', '.git', '.cache']

Benchmark test dosyaları için hariç tutulacak glob desenleri.

benchmark.includeSource ​

  • Tip: string[]
  • Varsayılan: []

Kaynak içi benchmark test dosyaları için glob'ları dahil et. Bu seçenek includeSource ile benzerdir.

Tanımlandığında, Vitest içinde import.meta.vitest bulunan tüm eşleşen dosyaları çalıştıracaktır.

benchmark.reporters ​

  • Tip: Arrayable<BenchmarkBuiltinReporters | Reporter>
  • Varsayılan: 'default'

Çıktı için özel raporlayıcıyı belirtir. Bir veya daha fazla yerleşik rapor adı, raporlayıcı örnekleri ve/veya özel raporlayıcılara giden yolları içerebilir.

benchmark.outputFile ​

benchmark.outputJson yerine kullanımdan kaldırıldı.

benchmark.outputJson ​

  • Tip: string | undefined
  • Varsayılan: undefined

Daha sonra --compare seçeneği için kullanılabilecek benchmark sonucunun depolanacağı dosya yolu.

Örneğin:

sh
# ana dalın sonucunu kaydet
git checkout main
vitest bench --outputJson main.json

# bir dala geç ve ana dala karşılaştır
git checkout feature
vitest bench --compare main.json

benchmark.compare ​

  • Tip: string | undefined
  • Varsayılan: undefined

Mevcut çalıştırmalarla karşılaştırmak için önceki bir benchmark sonucuna ait dosya yolu.

alias ​

  • Tip: Record<string, string> | Array<{ find: string | RegExp, replacement: string, customResolver?: ResolverFunction | ResolverObject }>

Testler içinde çalışırken özel takma adlar tanımlar. Bunlar resolve.alias'tan gelen takma adlarla birleştirilecektir.

WARNING

Vitest, testleri çalıştırmak için Vite SSR ilkellerini kullanır ve bunun bazı tuzakları vardır.

  1. Takma adlar yalnızca satır içi bir modül tarafından doğrudan import anahtar kelimesiyle içe aktarılan modülleri etkiler (tüm kaynak kodu varsayılan olarak satır içidir).
  2. Vitest, require çağrılarını takma adlandırmayı desteklemez.
  3. Harici bir bağımlılığı takma adlandırıyorsanız (örn. react -> preact), haricileştirilmiş bağımlılıklar için çalışmasını sağlamak için gerçek node_modules paketlerini takma adlandırmak isteyebilirsiniz. Hem Yarn hem de pnpm npm: öneki aracılığıyla takma adlandırmayı destekler.

globals ​

  • Tip: boolean
  • Varsayılan: false
  • CLI: --globals, --globals=false

Varsayılan olarak, vitest açıklık için genel API'ler sunmaz. API'leri Jest gibi genel olarak kullanmayı tercih ediyorsanız, CLI'ye --globals seçeneğini geçirebilir ya da yapılandırmaya globals: true ekleyebilirsiniz.

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

export default defineConfig({
  test: {
    globals: true,
  },
});

TypeScript'in genel API'lerle çalışmasını sağlamak için, tsconfig.json dosyanızdaki types alanına vitest/globals eklenmelidir.

json
{
  "compilerOptions": {
    "types": ["vitest/globals"]
  }
}

Derlemenize daha fazla tür dahil etmek için typeRoots değerinizi yeniden tanımladıysanız, vitest/globals'ın bulunabilmesi için node_modules'u geri eklemeniz gerekir.

json
{
  "compilerOptions": {
    "typeRoots": ["./types", "./node_modules/@types", "./node_modules"],
    "types": ["vitest/globals"]
  }
}

Projenizde zaten unplugin-auto-import kullanıyorsanız, bu API'leri otomatik olarak içe aktarmak için doğrudan da kullanabilirsiniz.

ts
import { defineConfig } from 'vitest/config';
import AutoImport from 'unplugin-auto-import/vite';

export default defineConfig({
  plugins: [
    AutoImport({
      imports: ['vitest'],
      dts: true, // TypeScript bildirimi oluştur
    }),
  ],
});

environment ​

  • Tip: 'node' | 'jsdom' | 'happy-dom' | 'edge-runtime' | string
  • Varsayılan: 'node'
  • CLI: --environment=<env>

Testlerin çalıştırılacağı ortam. Vitest'teki varsayılan ortam bir Node.js ortamıdır. Bir web uygulaması geliştiriyorsanız, bunun yerine jsdom veya happy-dom aracılığıyla tarayıcı benzeri bir ortam kullanabilirsiniz.

Edge fonksiyonları geliştiriyorsanız, edge-runtime ortamını kullanabilirsiniz.

TIP

Ortamı taklit etmeden tarayıcıda entegrasyon veya birim testleri çalıştırmak için Tarayıcı Modu kullanabilirsiniz.

Dosyanın en üstüne bir @vitest-environment docblock veya yorum ekleyerek, o dosyadaki tüm testler için kullanılacak başka bir ortam belirleyebilirsiniz:

Docblock stili:

js
/**
 * @vitest-environment jsdom
 */

test('bu test dosyasında jsdom kullan', () => {
  const element = document.createElement('div');
  expect(element).not.toBeNull();
});

Yorum stili:

js
// @vitest-environment happy-dom

test('bu test dosyasında happy-dom kullan', () => {
  const element = document.createElement('div');
  expect(element).not.toBeNull();
});

Jest ile uyumluluk için, @jest-environment de vardır:

js
/**
 * @jest-environment jsdom
 */

test('bu test dosyasında jsdom kullan', () => {
  const element = document.createElement('div');
  expect(element).not.toBeNull();
});

Vitest'i --isolate=false bayrağıyla çalıştırıyorsanız, testleriniz şu sırayla çalıştırılacaktır: node, jsdom, happy-dom, edge-runtime, özel ortamlar. Yani, aynı ortama sahip her test gruplandırılır, ancak yine de sıralı olarak çalışır.

0.23.0'dan itibaren, özel bir ortam da tanımlayabilirsiniz. Yerleşik olmayan bir ortam kullanıldığında, Vitest vitest-environment-${name} paketini yüklemeye çalışacaktır. Bu paket, Environment şeklinde bir nesne dışa aktarmalıdır:

ts
import type { Environment } from 'vitest';

export default <Environment>{
  name: 'custom',
  transformMode: 'ssr',
  setup() {
    // özel kurulum
    return {
      teardown() {
        // bu ortamla tüm testler çalıştırıldıktan sonra çağrılır
      },
    };
  },
};

Vitest ayrıca, yalnızca genişletmek istemeniz durumunda vitest/environments girişi aracılığıyla builtinEnvironments'ı da gösterir. Ortamları genişletme hakkında daha fazla bilgiyi rehberimizde okuyabilirsiniz.

TIP

jsdom ortamı, mevcut JSDOM örneğine eşit jsdom genel değişkenini gösterir. TypeScript'in bunu tanımasını istiyorsanız, bu ortamı kullandığınızda tsconfig.json dosyanıza vitest/jsdom ekleyebilirsiniz:

json
{
  "compilerOptions": {
    "types": ["vitest/jsdom"]
  }
}

environmentOptions ​

  • Tip: Record<'jsdom' | string, unknown>
  • Varsayılan: {}

Bu seçenekler, mevcut environment öğesinin setup yöntemine aktarılır. Varsayılan olarak, test ortamınız olarak JSDOM kullanıyorsanız yalnızca JSDOM seçeneklerini yapılandırabilirsiniz.

environmentMatchGlobs ​

  • Tip: [string, EnvironmentName][]
  • Varsayılan: []

KULLANIMDAN KALDIRILDI

Bu API Vitest 3'te kullanımdan kaldırıldı. Bunun yerine farklı yapılandırmalar tanımlamak için projeler kullanın.

ts
export default defineConfig({
  test: {
    environmentMatchGlobs: [ 
      ['./*.jsdom.test.ts', 'jsdom'], 
    ], 
    projects: [ 
      { 
        extends: true, 
        test: { 
          environment: 'jsdom', 
        }, 
      }, 
    ], 
  },
})

Globlara göre ortamı otomatik olarak atar. İlk eşleşme kullanılır.

Örneğin:

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

export default defineConfig({
  test: {
    environmentMatchGlobs: [
      // tests/dom içindeki tüm testler jsdom'da çalışacak
      ['tests/dom/**', 'jsdom'],
      // tests/ içindeki .edge.test.ts uzantılı tüm testler edge-runtime'da çalışacak
      ['**/*.edge.test.ts', 'edge-runtime'],
      // ...
    ],
  },
});

poolMatchGlobs ​

  • Tip: [string, 'threads' | 'forks' | 'vmThreads' | 'vmForks' | 'typescript'][]
  • Varsayılan: []

KULLANIMDAN KALDIRILDI

Bu API Vitest 3'te kullanımdan kaldırıldı. Bunun yerine farklı yapılandırmalar tanımlamak için projeler kullanın:

ts
export default defineConfig({
  test: {
    poolMatchGlobs: [ 
      ['./*.threads.test.ts', 'threads'], 
    ], 
    projects: [ 
      { 
        test: { 
          extends: true, 
          pool: 'threads', 
        }, 
      }, 
    ], 
  },
})

Testlerin çalışacağı havuzu globlara göre otomatik olarak atar. İlk eşleşme kullanılacaktır.

Örneğin:

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

export default defineConfig({
  test: {
    poolMatchGlobs: [
      // "worker-specific" dizinindeki tüm testler, sanki onlar için `--pool=threads` etkinleştirmişsiniz gibi bir worker içinde çalışacak,
      ['**/tests/worker-specific/**', 'threads'],
      // "browser" dizinindeki tüm testleri gerçek bir tarayıcıda çalıştır
      ['**/tests/browser/**', 'browser'],
      // diğer tüm testler, başka glob'lar belirtmediyseniz "browser.enabled" ve "threads" seçeneklerine göre çalışacaktır
      // ...
    ],
  },
});

update* ​

  • Tip: boolean
  • Varsayılan: false
  • CLI: -u, --update, --update=false

Anlık görüntü dosyalarını günceller. Bu, değişen tüm anlık görüntüleri günceller ve eski olanları siler.

watch* ​

  • Tip: boolean
  • Varsayılan: !process.env.CI && process.stdin.isTTY
  • CLI: -w, --watch, --watch=false

İzleme modunu etkinleştirir.

Etkileşimli ortamlarda, --run açıkça belirtilmediği sürece bu varsayılandır.

CI'da veya etkileşimli olmayan bir kabuktan çalıştırıldığında, "izleme" modu varsayılan değildir, ancak bu bayrakla açıkça etkinleştirilebilir.

watchTriggerPatterns 3.2.0+ * ​

  • Tip: WatcherTriggerPattern[]

Vitest, statik ve dinamik import ifadeleriyle oluşturulan modül grafiğine göre testleri yeniden çalıştırır. Ancak, dosya sisteminden okuma yapıyorsanız veya bir proxy'den veri alıyorsanız, Vitest bu bağımlılıkları algılayamaz.

Bu testleri doğru bir şekilde yeniden çalıştırmak için, bir regex deseni ve çalıştırılacak test dosyalarının bir listesini döndüren bir fonksiyon tanımlanabilir.

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

export default defineConfig({
  test: {
    watchTriggerPatterns: [
      {
        pattern: /^src\/(mailers|templates)\/(.*)\.(ts|html|txt)$/,
        testToRun: (id, match) => {
          // kök değerine göre
          return `./api/tests/mailers/${match[2]}.test.ts`;
        },
      },
    ],
  },
});

WARNING

Döndürülen dosyalar mutlak veya köke göre olmalıdır. Bunun genel bir seçenek olduğunu ve proje yapılandırmaları içinde kullanılamayacağını unutmayın.

root ​

  • Tip: string
  • CLI: -r <path>, --root=<path>

Projenin kök dizini.

dir ​

  • Tip: string
  • CLI: --dir=<path>
  • Varsayılan: root ile aynı

Test dosyalarını taramak için kullanılacak temel dizin. Kökünüz tüm projeyi kapsıyorsa test keşfini hızlandırmak için bu seçeneği belirtebilirsiniz.

reporters* ​

  • Tip: Reporter | Reporter[]
  • Varsayılan: 'default'
  • CLI: --reporter=<name>, --reporter=<name1> --reporter=<name2>

Çıktı için özel raporlayıcıları belirtir. Raporlayıcılar bir Raporlayıcı örneği, yerleşik raporlayıcıları seçmek için bir dize veya özel bir uygulamaya giden bir yol olabilir (örn. './path/to/reporter.ts', '@scope/reporter').

outputFile* ​

  • Tip: string | Record<string, string>
  • CLI: --outputFile=<path>, --outputFile.json=./path

--reporter=json, --reporter=html veya --reporter=junit seçeneği de belirtildiğinde test sonuçlarını bir dosyaya yazar. Bir dize yerine bir nesne sağlayarak birden çok raporlayıcı kullanırken ayrı ayrı çıktıları tanımlayabilirsiniz.

pool* ​

  • Tip: 'threads' | 'forks' | 'vmThreads' | 'vmForks'
  • Varsayılan: 'forks'
  • CLI: --pool=threads

Testlerin çalıştırılacağı havuz.

threads* ​

tinypool ( Piscina'nın hafif bir çatalı) kullanarak çoklu iş parçacığını etkinleştirin. İş parçacığı kullanırken process.chdir() gibi process API'lerini kullanamazsınız. Prisma, bcrypt ve canvas gibi yerel dillerde yazılmış bazı kütüphaneler, birden çok iş parçacığında çalışırken sorunlar yaşar ve segfault'lara neden olur. Bu durumlarda bunun yerine forks havuzunu kullanmanız tavsiye edilir.

forks* ​

threads havuzuna benzer ancak tinypool aracılığıyla worker_threads yerine child_process kullanır. Testler ve ana işlem arasındaki iletişim threads havuzundaki kadar hızlı değildir. process.chdir() gibi işlemle ilgili API'ler forks havuzunda mevcuttur.

vmThreads* ​

Testleri threads havuzunda VM bağlamı (bir sanal ortam içinde) kullanarak çalıştırır.

Bu, testlerin daha hızlı çalışmasını sağlar; ancak VM modülü, ESM kodu çalıştırırken kararsızdır. Testleriniz bellek sızıntısı yapabilir; bununla mücadele etmek için poolOptions.vmThreads.memoryLimit değerini manuel olarak düzenlemeyi düşünebilirsiniz.

WARNING

Kodu bir sanal alanda çalıştırmanın bazı avantajları (daha hızlı testler) vardır, ancak aynı zamanda bir dizi dezavantajı da vardır.

  • fs, path vb. gibi yerel modüller içindeki genel değişkenler, test ortamınızda bulunan genel değişkenlerden farklıdır. Sonuç olarak, bu yerel modüller tarafından atılan herhangi bir hata, kodunuzda kullanılan hata yapıcısından farklı bir Hata yapıcısına başvuracaktır:
ts
try {
  fs.writeFileSync('/doesnt exist');
} catch (err) {
  console.log(err instanceof Error); // false
}
  • ES modüllerini içe aktarmak, onları süresiz olarak önbelleğe alır ve bu da çok sayıda bağlamınız (test dosyaları) varsa bellek sızıntılarına neden olur. Node.js'de bu önbelleği temizleyen bir API yoktur.
  • Genel değişkenlere erişim, sanal ortamda daha uzun zaman alır.

Bu seçeneği kullanırken bu sorunların farkında olun. Vitest ekibi kendi tarafımızda hiçbir sorunu çözemez.

vmForks* ​

vmThreads havuzuna benzer ancak tinypool aracılığıyla worker_threads yerine child_process kullanır. Testler ve ana işlem arasındaki iletişim vmThreads havuzundaki kadar hızlı değildir. process.chdir() gibi işlemle ilgili API'ler vmForks havuzunda mevcuttur. Lütfen bu havuzun vmThreads'da listelenen aynı tuzaklara sahip olduğunu unutmayınız.

poolOptions* ​

  • Tip: Record<'threads' | 'forks' | 'vmThreads' | 'vmForks', {}>
  • Varsayılan: {}

poolOptions.threads ​

threads havuzu için seçenekler.

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

export default defineConfig({
  test: {
    poolOptions: {
      threads: {
        // İş parçacıklarıyla ilgili seçenekler buraya
      },
    },
  },
});
poolOptions.threads.maxThreads* ​
  • Tip: number | string
  • Varsayılan: mevcut CPU'lar

İş parçacıklarının maksimum sayısı veya yüzdesi. VITEST_MAX_THREADS ortam değişkenini de kullanabilirsiniz.

poolOptions.threads.minThreads* ​
  • Tip: number | string
  • Varsayılan: mevcut CPU'lar

İş parçacıklarının minimum sayısı veya yüzdesi. VITEST_MIN_THREADS ortam değişkenini de kullanabilirsiniz.

poolOptions.threads.singleThread ​
  • Tip: boolean
  • Varsayılan: false

Aynı ortama sahip tüm testleri tek bir worker iş parçacığı içinde çalıştırır. Bu, yerleşik modül izolasyonunu devre dışı bırakır (kaynak kodunuz veya satır içi kodunuz her test için yeniden değerlendirilecektir), ancak test performansını artırabilir.

WARNING

Bu seçenek testleri birbiri ardına çalıştırmaya zorlayacak olsa da, bu seçenek Jest'in --runInBand seçeneğinden farklıdır. Vitest, worker'ları yalnızca testleri paralel çalıştırmak için değil, aynı zamanda izolasyon sağlamak için de kullanır. Bu seçeneği devre dışı bırakarak, testleriniz sıralı olarak çalışacak, ancak aynı genel bağlamda çalışacak, bu nedenle izolasyonu kendiniz sağlamanız gerekir.

Bu, genel duruma güveniyorsanız (ön uç çerçeveleri genellikle yapar) veya kodunuzun her test için ayrı ayrı tanımlanmış bir ortama güveniyorsa çeşitli sorunlara yol açabilir. Ancak, genel duruma mutlaka güvenmeyen veya bunu kolayca atlayabilen testleriniz için bir hız artışı (3 kata kadar daha hızlı) olabilir.

poolOptions.threads.useAtomics* ​
  • Tip: boolean
  • Varsayılan: false

İş parçacıklarını senkronize etmek için Atomics kullanır.

Bu, bazı durumlarda performansı artırabilir, ancak eski Node sürümlerinde segfault'a yol açabilir.

poolOptions.threads.isolate ​
  • Type: boolean
  • Default: true

Her test dosyası için ortamı izole edin.

poolOptions.threads.execArgv* ​
  • Tip: string[]
  • Varsayılan: []

İş parçacıklarındaki node'a ek argümanlar geçirir. Daha fazla bilgi için Command-line API | Node.js adresine bakın.

WARNING

Kullanırken dikkatli olun, bazı seçenekler worker'ı çökertebilir, örn. --prof, --title. Bkz. https://github.com/nodejs/node/issues/41103.

poolOptions.forks ​

forks havuzu için seçenekler.

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

export default defineConfig({
  test: {
    poolOptions: {
      forks: {
        // Çatallarla ilgili seçenekler buraya
      },
    },
  },
});
poolOptions.forks.maxForks* ​
  • Tip: number | string
  • Varsayılan: mevcut CPU'lar

Çatalların maksimum sayısı veya yüzdesi. VITEST_MAX_FORKS ortam değişkenini de kullanabilirsiniz.

poolOptions.forks.minForks* ​
  • Tip: number | string
  • Varsayılan: mevcut CPU'lar

Çatalların minimum sayısı veya yüzdesi. VITEST_MIN_FORKS ortam değişkenini de kullanabilirsiniz.

poolOptions.forks.isolate ​
  • Tip: boolean
  • Varsayılan: true

Her test dosyası için ortamı izole eder.

poolOptions.forks.singleFork ​
  • Tip: boolean
  • Varsayılan: false

Aynı ortama sahip tüm testleri tek bir alt işlem içinde çalıştırır. Bu, yerleşik modül izolasyonunu devre dışı bırakacaktır (kaynak kodunuz veya satır içi kodunuz her test için yeniden değerlendirilecektir), ancak test performansını artırabilir.

WARNING

Bu seçenek testleri birbiri ardına çalıştırmaya zorlayacak olsa da, bu seçenek Jest'in --runInBand seçeneğinden farklıdır. Vitest, alt süreçleri yalnızca testleri paralel çalıştırmak için değil, aynı zamanda izolasyon sağlamak için de kullanır. Bu seçeneği devre dışı bırakarak, testleriniz sıralı olarak çalışacak, ancak aynı genel bağlamda çalışacak, bu nedenle izolasyonu kendiniz sağlamanız gerekir.

Bu, genel duruma güveniyorsanız (ön uç çerçeveleri genellikle yapar) veya kodunuzun her test için ayrı ayrı tanımlanmış bir ortama güveniyorsa çeşitli sorunlara yol açabilir. Ancak, genel duruma mutlaka güvenmeyen veya bunu kolayca atlayabilen testleriniz için bir hız artışı (3 kata kadar daha hızlı) olabilir.

poolOptions.forks.execArgv* ​
  • Tip: string[]
  • Varsayılan: []

Alt süreçlerdeki node işlemine ek argümanlar geçirir. Daha fazla bilgi için Command-line API | Node.js adresine bakın.

WARNING

Kullanırken dikkatli olun, bazı seçenekler worker'ı çökertebilir, örn. --prof, --title. Bkz. https://github.com/nodejs/node/issues/41103.

poolOptions.vmThreads ​

vmThreads havuzu için seçenekler.

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

export default defineConfig({
  test: {
    poolOptions: {
      vmThreads: {
        // VM iş parçacıklarıyla ilgili seçenekler buraya
      },
    },
  },
});
poolOptions.vmThreads.maxThreads* ​
  • Tip: number | string
  • Varsayılan: mevcut CPU'lar

İş parçacıklarının maksimum sayısı veya yüzdesi. VITEST_MAX_THREADS ortam değişkenini de kullanabilirsiniz.

poolOptions.vmThreads.minThreads* ​
  • Tip: number | string
  • Varsayılan: mevcut CPU'lar

İş parçacıklarının minimum sayısı veya yüzdesi. VITEST_MIN_THREADS ortam değişkenini de kullanabilirsiniz.

poolOptions.vmThreads.memoryLimit* ​
  • Tip: string | number
  • Varsayılan: 1 / CPU Çekirdekleri

Worker'ların geri dönüştürülmeden önce kullanabileceği bellek sınırını belirtir. Bu değer ortamınıza büyük ölçüde bağlıdır, bu nedenle varsayılan değere güvenmek yerine manuel olarak belirtilmesi önerilir.

TIP

Uygulama Jest'in workerIdleMemoryLimit özelliğine dayanmaktadır.

Sınır çeşitli şekillerde belirtilebilir ve sonuç ne olursa olsun Math.floor tam sayıya dönüştürmek için kullanılır:

  • <= 1 - Değerin sistem belleğinin yüzdesi olduğu varsayılır. Yani 0.5, worker'ın bellek sınırını toplam sistem belleğinin yarısına ayarlar.
  • > 1 - Sabit bir bayt değeri olduğu varsayılır. Önceki kural nedeniyle 1 baytlık bir değer istiyorsanız (nedenini bilmiyorum) 1.1 kullanabilirsiniz.
  • Birimlerle
    • 50% - Yukarıdaki gibi, toplam sistem belleğinin yüzdesi
    • 100KB, 65MB, vb. - Sabit bir bellek sınırını belirtmek için birimlerle.
      • K / KB - Kilobayt (x1000)
      • KiB - Kibibayt (x1024)
      • M / MB - Megabayt - MiB - Mebibayt
      • G / GB - Gigabayt - GiB - Gibibayt

WARNING

Yüzde tabanlı bellek sınırı, yanlış sistem belleği rapor edildiği için Linux CircleCI'da çalışmamaktadır worker'larında.

poolOptions.vmThreads.useAtomics* ​
  • Tip: boolean
  • Varsayılan: false

İş parçacıklarını senkronize etmek için Atomics kullanır.

Bu, bazı durumlarda performansı artırabilir, ancak eski Node sürümlerinde segfault'a yol açabilir.

poolOptions.vmThreads.execArgv* ​
  • Tip: string[]
  • Varsayılan: []

VM bağlamındaki node işlemine ek argümanlar geçirir. Daha fazla bilgi için Command-line API | Node.js adresine bakın.

WARNING

Kullanırken dikkatli olun, bazı seçenekler worker'ı çökertebilir, örn. --prof, --title. Bkz. https://github.com/nodejs/node/issues/41103.

poolOptions.vmForks* ​

vmForks havuzu için seçenekler.

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

export default defineConfig({
  test: {
    poolOptions: {
      vmForks: {
        // VM çatallarıyla ilgili seçenekler buraya
      },
    },
  },
});
poolOptions.vmForks.maxForks* ​
  • Tip: number | string
  • Varsayılan: mevcut CPU'lar

Çatalların maksimum sayısı veya yüzdesi. VITEST_MAX_FORKS ortam değişkenini de kullanabilirsiniz.

poolOptions.vmForks.minForks* ​
  • Tip: number | string
  • Varsayılan: mevcut CPU'lar

Çatalların minimum sayısı veya yüzdesi. VITEST_MIN_FORKS ortam değişkenini de kullanabilirsiniz.

poolOptions.vmForks.memoryLimit* ​
  • Tip: string | number
  • Varsayılan: 1 / CPU Çekirdekleri

Worker'ların geri dönüştürülmeden önce bellek sınırını belirtir. Bu değer ortamınıza büyük ölçüde bağlıdır, bu nedenle varsayılan değere güvenmek yerine manuel olarak belirtmek daha iyidir. Değerin nasıl hesaplandığı poolOptions.vmThreads.memoryLimit bölümünde açıklanmıştır.

poolOptions.vmForks.execArgv* ​
  • Tip: string[]
  • Varsayılan: []

VM bağlamındaki node işlemine ek argümanlar geçirir. Daha fazla bilgi için Command-line API | Node.js adresine bakın.

WARNING

Kullanırken dikkatli olun, bazı seçenekler worker'ı çökertebilir, örn. --prof, --title. Bkz. https://github.com/nodejs/node/issues/41103.

fileParallelism* ​

  • Tip: boolean
  • Varsayılan: true
  • CLI: --no-file-parallelism, --fileParallelism=false

Tüm test dosyaları paralel olarak çalıştırılmalı mı? Bunu false olarak ayarlamak, maxWorkers ve minWorkers seçeneklerini 1 olarak geçersiz kılar.

TIP

Bu seçeneğin, aynı dosyada çalışan testler üzerinde bir etkisi yoktur. Bunları paralel çalıştırmak istiyorsanız, describe üzerinde veya bir yapılandırma aracılığıyla concurrent seçeneğini kullanın.

maxWorkers* ​

  • Tip: number | string

Testleri çalıştırmak için kullanılabilecek maksimum worker sayısı veya yüzdesi. poolOptions.{threads,vmThreads}.maxThreads/poolOptions.forks.maxForks daha yüksek önceliğe sahiptir.

minWorkers* ​

  • Tip: number | string

Testleri çalıştırmak için kullanılabilecek minimum worker sayısı veya yüzdesi. poolOptions.{threads,vmThreads}.minThreads/poolOptions.forks.minForks daha yüksek önceliğe sahiptir.

testTimeout ​

  • Tip: number
  • Varsayılan: Node.js'de 5_000, browser.enabled true ise 15_000
  • CLI: --test-timeout=5000, --testTimeout=5000

Bir testin milisaniye cinsinden varsayılan zaman aşımı süresi. Zaman aşımını tamamen devre dışı bırakmak için 0 kullanılır.

hookTimeout ​

  • Tip: number
  • Varsayılan: Node.js'de 10_000, browser.enabled true ise 30_000
  • CLI: --hook-timeout=10000, --hookTimeout=10000

Bir kancanın milisaniye cinsinden varsayılan zaman aşımı süresi. Zaman aşımını tamamen devre dışı bırakmak için 0 kullanılır.

teardownTimeout* ​

  • Tip: number
  • Varsayılan: 10000
  • CLI: --teardown-timeout=5000, --teardownTimeout=5000

Vitest kapanırken kapanmayı beklemek için milisaniye cinsinden varsayılan zaman aşımı süresi.

silent* ​

  • Tip: boolean | 'passed-only'
  • Varsayılan: false
  • CLI: --silent, --silent=false

Testlerden gelen konsol çıktısını sessize alır.

Yalnızca başarısız olan testlerden gelen günlükleri görmek için 'passed-only' kullanılır. Başarısız olan testlerden gelen günlükler, test bittikten sonra yazdırılır.

setupFiles ​

  • Tip: string | string[]

Kurulum dosyalarının yolunu belirtir. Her test dosyasından önce çalıştırılırlar.

INFO

Bir kurulum dosyasını düzenlemek, tüm testlerin otomatik olarak yeniden çalıştırılmasını tetikler.

İş parçacıkları arasında ayrım yapmak için içinde process.env.VITEST_POOL_ID (tam sayı benzeri dize) kullanılabilir.

TIP

Unutmayın ki, --isolate=false çalıştırıyorsanız, bu kurulum dosyası aynı genel kapsamda birden çok kez çalıştırılır. Yani, her testten önce aynı genel nesneye erişirsiniz, bu yüzden ihtiyacınızdan fazlasını yapmadığınızdan emin olmalısınız.

Örneğin, genel bir değişkene güvenebilirsiniz:

ts
import { config } from '@some-testing-lib';

if (!globalThis.defined) {
  config.plugins = [myCoolPlugin];
  computeHeavyThing();
  globalThis.defined = true;
}

// kancalar her süitten önce sıfırlanır
afterEach(() => {
  cleanup();
});

globalThis.resetBeforeEachTest = true;

provide 2.1.0+ ​

  • Tip: Partial<ProvidedContext>

inject yöntemini kullanarak testlerinizde erişilebilecek değerleri tanımlar.

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

export default defineConfig({
  test: {
    provide: {
      API_KEY: '123',
    },
  },
});
ts
import { expect, inject, test } from 'vitest';

test('api anahtarı tanımlı', () => {
  expect(inject('API_KEY')).toBe('123');
});

WARNING

Özellikler dizeler olmalı ve değerler serileştirilebilir olmalıdır, çünkü bu nesne farklı süreçler arasında aktarılacaktır.

TIP

TypeScript kullanıyorsanız, tür güvenli erişim için ProvidedContext türünü genişletmeniz gerekir:

ts
declare module 'vitest' {
  export interface ProvidedContext {
    API_KEY: string;
  }
}

// bu dosyayı bir modül olarak işaretleyin, böylece genişletme doğru çalışır
export {};

globalSetup ​

  • Tip: string | string[]

Proje köküne göre genel kurulum dosyalarının yolunu belirtir.

Genel bir kurulum dosyası, setup ve teardown adlı fonksiyonları veya bir teardown fonksiyonu döndüren bir default fonksiyonunu dışa aktarabilir (örnek).

INFO

Birden fazla globalSetup dosyası mümkündür. setup ve teardown, teardown ters sırada olmak üzere sıralı olarak yürütülür.

WARNING

Genel kurulum, yalnızca en az bir çalışan test varsa yürütülür. Bu, genel kurulumun izleme modunda bir test dosyası değiştirildikten sonra çalışmaya başlayabileceği anlamına gelir (test dosyası, çalışmadan önce genel kurulumun bitmesini bekler).

Genel kurulumun farklı bir genel kapsamda çalıştığını unutmayınız, bu nedenle testleriniz burada tanımlanan değişkenlere erişemez. Ancak, serileştirilebilir verileri provide yöntemi aracılığıyla testlere aktarabilirsiniz:

ts
import { inject } from 'vitest';

inject('wsPort') === 3000;
ts
import type { TestProject } from 'vitest/node';

export default function setup(project: TestProject) {
  project.provide('wsPort', 3000);
}

declare module 'vitest' {
  export interface ProvidedContext {
    wsPort: number;
  }
}
ts
import type { GlobalSetupContext } from 'vitest/node';

export default function setup({ provide }: GlobalSetupContext) {
  provide('wsPort', 3000);
}

declare module 'vitest' {
  export interface ProvidedContext {
    wsPort: number;
  }
}

Vitest 3'ten itibaren, Vitest testleri yeniden çalıştırdığında çağrılacak özel bir geri çağırma fonksiyonu tanımlanabilir. Fonksiyon eşzamansız ise, çalıştırıcı testleri yürütmeden önce tamamlanmasını bekler. project'i { onTestsRerun } gibi parçalara ayıramayacağınızı unutmayın, çünkü bağlama bağlıdır.

ts
import type { TestProject } from 'vitest/node';

export default function setup(project: TestProject) {
  project.onTestsRerun(async () => {
    await restartDb();
  });
}

forceRerunTriggers* ​

  • Tip: string[]
  • Varsayılan: ['**/package.json/**', '**/vitest.config.*/**', '**/vite.config.*/**']

Tüm test süitesinin yeniden çalıştırılmasını tetikleyecek dosya yollarının glob deseni. --changed argümanıyla eşleştirildiğinde, tetikleyici git diff'te bulunursa tüm test süitesini çalıştırır.

CLI komutlarını çağırmayı test ediyorsanız faydalıdır, çünkü Vite bir modül grafiği oluşturamaz:

ts
test('bir betik yürüt', async () => {
  // `dist/index.js` içeriği değişirse Vitest bu testi yeniden çalıştıramaz
  await execa('node', ['dist/index.js']);
});

TIP

Dosyalarınızın server.watch.ignored tarafından hariç tutulmadığından emin olun.

coverage* ​

Kapsam toplama için v8, istanbul veya özel bir kapsam çözümü kullanılabilir.

Kapsam seçeneklerini CLI'ye nokta notasyonuyla sağlayabilirsiniz:

sh
npx vitest --coverage.enabled --coverage.provider=istanbul --coverage.all

WARNING

Kapsam seçeneklerini nokta notasyonuyla kullanıyorsanız, --coverage.enabled belirtmeyi unutmayın. Bu durumda tek bir --coverage seçeneği sağlamayın.

coverage.provider ​

  • Tip: 'v8' | 'istanbul' | 'custom'
  • Varsayılan: 'v8'
  • CLI: --coverage.provider=<provider>

Kapsam toplama aracı olarak provider'ı kullanın.

coverage.enabled ​

  • Tip: boolean
  • Varsayılan: false
  • Sağlayıcılar için kullanılabilir: 'v8' | 'istanbul'
  • CLI: --coverage.enabled, --coverage.enabled=false

Kapsam toplamayı etkinleştirir. --coverage CLI seçeneği kullanılarak geçersiz kılınabilir.

coverage.include ​

  • Tip: string[]
  • Varsayılan: ['**']
  • Sağlayıcılar için kullanılabilir: 'v8' | 'istanbul'
  • CLI: --coverage.include=<path>, --coverage.include=<path1> --coverage.include=<path2>

Kapsama dahil edilecek dosyaların glob desenleri listesi.

coverage.extension ​

  • Tip: string | string[]
  • Varsayılan: ['.js', '.cjs', '.mjs', '.ts', '.mts', '.tsx', '.jsx', '.vue', '.svelte', '.marko', '.astro']
  • Sağlayıcılar için kullanılabilir: 'v8' | 'istanbul'
  • CLI: --coverage.extension=<extension>, --coverage.extension=<extension1> --coverage.extension=<extension2>

coverage.exclude ​

  • Tip: string[]
  • Varsayılan:
js
[
  'coverage/**',
  'dist/**',
  '**/node_modules/**',
  '**/[.]**',
  'packages/*/test?(s)/**',
  '**/*.d.ts',
  '**/virtual:*',
  '**/__x00__*',
  '**/\x00*',
  'cypress/**',
  'test?(s)/**',
  'test?(-*).?(c|m)[jt]s?(x)',
  '**/*{.,-}{test,spec,bench,benchmark}?(-d).?(c|m)[jt]s?(x)',
  '**/__tests__/**',
  '**/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc,cypress,tsup,build,eslint,prettier}.config.*',
  '**/vitest.{workspace,projects}.[jt]s?(on)',
  '**/.{eslint,mocha,prettier}rc.{?(c|m)js,yml}',
];
  • Sağlayıcılar için kullanılabilir: 'v8' | 'istanbul'
  • CLI: --coverage.exclude=<path>, --coverage.exclude=<path1> --coverage.exclude=<path2>

Kapsamdan hariç tutulacak dosyaların glob desenleri listesi.

Bu seçenek tüm varsayılan seçenekleri geçersiz kılar. Yeni desenleri yoksaymak için varsayılan seçenekleri genişletin:

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

export default defineConfig({
  test: {
    coverage: {
      exclude: ['**/custom-pattern/**', ...coverageConfigDefaults.exclude],
    },
  },
});

NOT

Vitest, test dosyalarını include desenlerini otomatik olarak coverage.exclude'e ekler. Test dosyalarının kapsamını göstermek mümkün değildir.

coverage.all ​

  • Tip: boolean
  • Varsayılan: true
  • Sağlayıcılar için kullanılabilir: 'v8' | 'istanbul'
  • CLI: --coverage.all, --coverage.all=false

Test edilmemişler de dahil olmak üzere tüm dosyaların rapora dahil edilip edilmeyeceği.

coverage.clean ​

  • Tip: boolean
  • Varsayılan: true
  • Sağlayıcılar için kullanılabilir: 'v8' | 'istanbul'
  • CLI: --coverage.clean, --coverage.clean=false

Testleri çalıştırmadan önce kapsam sonuçlarını temizler.

coverage.cleanOnRerun ​

  • Tip: boolean
  • Varsayılan: true
  • Sağlayıcılar için kullanılabilir: 'v8' | 'istanbul'
  • CLI: --coverage.cleanOnRerun, --coverage.cleanOnRerun=false

İzleme yeniden çalıştırmasında kapsam raporunu temizler. İzleme modunda önceki çalıştırmadan gelen kapsam sonuçlarını korumak için false olarak ayarlanır.

coverage.reportsDirectory ​

  • Tip: string
  • Varsayılan: './coverage'
  • Sağlayıcılar için kullanılabilir: 'v8' | 'istanbul'
  • CLI: --coverage.reportsDirectory=<path>

WARNING

coverage.clean etkinleştirilirse (varsayılan değer), Vitest bu dizini testleri çalıştırmadan önce silecektir.

Kapsam raporunun yazılacağı dizini belirtir.

HTML raporlayıcı çıktısında kapsam raporunu önizlemek için, bu seçenek html rapor dizininin bir alt dizini olarak ayarlanmalıdır (örneğin ./html/coverage).

coverage.reporter ​

  • Tip: string | string[] | [string, {}][]
  • Varsayılan: ['text', 'html', 'clover', 'json']
  • Sağlayıcılar için kullanılabilir: 'v8' | 'istanbul'
  • CLI: --coverage.reporter=<reporter>, --coverage.reporter=<reporter1> --coverage.reporter=<reporter2>

Kullanılacak kapsam raporlayıcılarını belirtir. Tüm raporlayıcıların ayrıntılı listesi için istanbul belgelerine bakınız. Raporlayıcıya özgü seçenekler hakkında ayrıntılar için @types/istanbul-reporter adresine bakınız.

Raporlayıcının üç farklı türü vardır:

  • Tek bir raporlayıcı: { reporter: 'html' }
  • Seçeneksiz birden çok raporlayıcı: { reporter: ['html', 'json'] }
  • Raporlayıcı seçenekleriyle tek veya birden çok raporlayıcı:
    ts
    {
      reporter: [
        ['lcov', { projectRoot: './src' }],
        ['json', { file: 'coverage.json' }],
        ['text'],
      ];
    }

Özel kapsam raporlayıcıları da geçirilebilir. Daha fazla bilgi için Rehber - Özel Kapsam Raporlayıcı bölümüne bakınız.

ts
{
  reporter: [
    // NPM paketinin adını kullanarak raporlayıcıyı belirtin
    '@vitest/custom-coverage-reporter',
    ['@vitest/custom-coverage-reporter', { someOption: true }],

    // Yerel yolu kullanarak raporlayıcıyı belirtin
    '/absolute/path/to/custom-reporter.cjs',
    ['/absolute/path/to/custom-reporter.cjs', { someOption: true }],
  ];
}

Kapsam raporunuzu Vitest UI'da kontrol edebilirsiniz: daha fazla ayrıntı için Vitest UI Kapsamı bölümüne bakın.

coverage.reportOnFailure ​

  • Tip: boolean
  • Varsayılan: false
  • Sağlayıcılar için kullanılabilir: 'v8' | 'istanbul'
  • CLI: --coverage.reportOnFailure, --coverage.reportOnFailure=false

Testler başarısız olsa bile kapsam raporu oluşturur.

coverage.allowExternal ​

  • Tip: boolean
  • Varsayılan: false
  • Sağlayıcılar için kullanılabilir: 'v8' | 'istanbul'
  • CLI: --coverage.allowExternal, --coverage.allowExternal=false

Proje root dışındaki dosyaların kapsamını toplar.

coverage.excludeAfterRemap 2.1.0+ ​

  • Tip: boolean
  • Varsayılan: false
  • Sağlayıcılar için kullanılabilir: 'v8' | 'istanbul'
  • CLI: --coverage.excludeAfterRemap, --coverage.excludeAfterRemap=false

Kapsam orijinal kaynaklara yeniden eşlendikten sonra hariç tutmaları tekrar uygular. Bu, kaynak dosyalarınızın dönüştürüldüğü ve kaynak olmayan dosyaların kaynak haritalarını içerebileceği durumlarda faydalıdır.

coverage.exclude desenlerinizle eşleşse bile raporda görünen dosyalar görüyorsanız bu seçeneği kullanınız.

coverage.skipFull ​

  • Tip: boolean
  • Varsayılan: false
  • Sağlayıcılar için kullanılabilir: 'v8' | 'istanbul'
  • CLI: --coverage.skipFull, --coverage.skipFull=false

%100 ifade, dal ve fonksiyon kapsamına sahip dosyaları göstermez.

coverage.thresholds ​

Kapsam eşikleri için seçenekler.

Bir eşik pozitif bir sayıya ayarlanırsa, gerekli minimum kapsam yüzdesi olarak yorumlanır. Örneğin, satır eşiğini 90 olarak ayarlamak, satırların %90'ının kapsanması gerektiği anlamına gelir.

Bir eşik negatif bir sayıya ayarlanırsa, izin verilen maksimum kapsanmamış öğe sayısı olarak ele alınır. Örneğin, satır eşiğini -10 olarak ayarlamak, en fazla 10 satırın kapsanmamış olabileceği anlamına gelir.

ts
{
  coverage: {
    thresholds: {
      // %90 fonksiyon kapsamı gerektirir
      functions: 90,

      // En fazla 10 satırın kapsanmamış olmasını gerektirir
      lines: -10,
    }
  }
}
coverage.thresholds.lines ​
  • Tip: number
  • Sağlayıcılar için kullanılabilir: 'v8' | 'istanbul'
  • CLI: --coverage.thresholds.lines=<number>

Satırlar için genel eşik.

coverage.thresholds.functions ​
  • Tip: number
  • Sağlayıcılar için kullanılabilir: 'v8' | 'istanbul'
  • CLI: --coverage.thresholds.functions=<number>

Fonksiyonlar için genel eşik.

coverage.thresholds.branches ​
  • Tip: number
  • Sağlayıcılar için kullanılabilir: 'v8' | 'istanbul'
  • CLI: --coverage.thresholds.branches=<number>

Dallar için genel eşik.

coverage.thresholds.statements ​
  • Tip: number
  • Sağlayıcılar için kullanılabilir: 'v8' | 'istanbul'
  • CLI: --coverage.thresholds.statements=<number>

İfadeler için genel eşik.

coverage.thresholds.perFile ​
  • Tip: boolean
  • Varsayılan: false
  • Sağlayıcılar için kullanılabilir: 'v8' | 'istanbul'
  • CLI: --coverage.thresholds.perFile, --coverage.thresholds.perFile=false

Dosya başına eşikleri kontrol eder.

coverage.thresholds.autoUpdate ​
  • Tip: boolean
  • Varsayılan: false
  • Sağlayıcılar için kullanılabilir: 'v8' | 'istanbul'
  • CLI: --coverage.thresholds.autoUpdate=<boolean>

Mevcut kapsam yapılandırılmış eşiklerden daha iyiyse, lines, functions, branches ve statements tüm eşik değerlerini yapılandırma dosyasına günceller. Bu seçenek, kapsam iyileştirildiğinde eşikleri korumaya katkı sağlar.

coverage.thresholds.100 ​
  • Tip: boolean
  • Varsayılan: false
  • Sağlayıcılar için kullanılabilir: 'v8' | 'istanbul'
  • CLI: --coverage.thresholds.100, --coverage.thresholds.100=false

Genel eşikleri 100'e ayarlar. --coverage.thresholds.lines 100 --coverage.thresholds.functions 100 --coverage.thresholds.branches 100 --coverage.thresholds.statements 100 için kısayol.

coverage.thresholds[glob-pattern] ​
  • Tip: { statements?: number functions?: number branches?: number lines?: number }
  • Varsayılan: undefined
  • Sağlayıcılar için kullanılabilir: 'v8' | 'istanbul'

Glob deseniyle eşleşen dosyalar için eşikleri ayarlar.

NOT

Vitest, glob desenleriyle kapsananlar da dahil olmak üzere tüm dosyaları genel kapsam eşiklerine sayar. Bu, Jest davranışından farklıdır.

ts
{
  coverage: {
    thresholds: {
      // Tüm dosyalar için eşikler
      functions: 95,
      branches: 70,

      // Eşleşen glob deseni için eşikler
      'src/utils/**.ts': {
        statements: 95,
        functions: 90,
        branches: 85,
        lines: 80,
      },

      // Bu desenle eşleşen dosyalar yalnızca satır eşiklerine sahip olacaktır.
      // Genel eşikler devralınmaz.
      '**/math.ts': {
        lines: 100,
      }
    }
  }
}
coverage.thresholds[glob-pattern].100 2.1.0+ ​
  • Tip: boolean
  • Varsayılan: false
  • Sağlayıcılar için kullanılabilir: 'v8' | 'istanbul'

Glob deseniyle eşleşen dosyalar için eşikleri 100'e ayarlar.

ts
{
  coverage: {
    thresholds: {
      // Tüm dosyalar için eşikler
      functions: 95,
      branches: 70,

      // Eşleşen glob deseni için eşikler
      'src/utils/**.ts': { 100: true },
      '**/math.ts': { 100: true }
    }
  }
}

coverage.ignoreEmptyLines ​

  • Tip: boolean
  • Varsayılan: true (v1'de false)
  • Sağlayıcılar için kullanılabilir: 'v8'
  • CLI: --coverage.ignoreEmptyLines=<boolean>

Boş satırları, yorumları ve diğer çalışma zamanı dışı kodları, örn. Typescript türlerini yoksayar. experimentalAstAwareRemapping: false gerektirir.

Bu seçenek yalnızca kullanılan derleyici, dönüştürülmüş koddan yorumları ve diğer çalışma zamanı dışı kodları kaldırırsa geçerlidir. Varsayılan olarak Vite, .ts, .tsx ve .jsx dosyalarından yorumları ve Typescript türlerini kaldıran ESBuild'i kullanır.

ESBuild'i diğer dosyalara da uygulamak istiyorsanız, bunları esbuild seçeneklerinde tanımlayın:

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

export default defineConfig({
  esbuild: {
    // Kod kapsamından yorumları kaldırmak için tüm dosyaları ESBuild ile dönüştürün.
    // `test.coverage.ignoreEmptyLines`'ın çalışması için gereklidir:
    include: ['**/*.js', '**/*.jsx', '**/*.mjs', '**/*.ts', '**/*.tsx'],
  },
  test: {
    coverage: {
      provider: 'v8',
      ignoreEmptyLines: true,
    },
  },
});

coverage.experimentalAstAwareRemapping ​

  • Tip: boolean
  • Varsayılan: false
  • Sağlayıcılar için kullanılabilir: 'v8'
  • CLI: --coverage.experimentalAstAwareRemapping=<boolean>

Deneysel AST tabanlı analizle kapsamı yeniden eşler. Varsayılan moda kıyasla daha doğru sonuçlar sunar.

coverage.ignoreClassMethods ​

  • Tip: string[]
  • Varsayılan: []
  • Sağlayıcılar için kullanılabilir: 'istanbul'
  • CLI: --coverage.ignoreClassMethods=<method>

Kapsam için yoksayılacak sınıf yöntemi adlarının dizisi olarak ayarlanır. Daha fazla bilgi için istanbul belgelerine bakın.

coverage.watermarks ​

  • Tip:
ts
{
  statements?: [number, number],
  functions?: [number, number],
  branches?: [number, number],
  lines?: [number, number]
}
  • Varsayılan:
ts
{
  statements: [50, 80],
  functions: [50, 80],
  branches: [50, 80],
  lines: [50, 80]
}
  • Sağlayıcılar için kullanılabilir: 'v8' | 'istanbul'
  • CLI: --coverage.watermarks.statements=50,80, --coverage.watermarks.branches=50,80

İfadeler, satırlar, dallar ve fonksiyonlar için filigranları belirtir. Daha fazla bilgi için istanbul belgelerine bakın.

coverage.processingConcurrency ​

  • Tip: boolean
  • Varsayılan: Math.min(20, os.availableParallelism?.() ?? os.cpus().length)
  • Sağlayıcılar için kullanılabilir: 'v8' | 'istanbul'
  • CLI: --coverage.processingConcurrency=<number>

Kapsam sonuçlarını işlerken kullanılan eşzamanlılık sınırını belirtir.

coverage.customProviderModule ​

  • Tip: string
  • Sağlayıcılar için kullanılabilir: 'custom'
  • CLI: --coverage.customProviderModule=<path or module name>

Özel kapsam sağlayıcı modülü için modül adını veya yolunu belirtir. Daha fazla bilgi için Rehber - Özel Kapsam Sağlayıcı bölümüne bakın.

testNamePattern* ​

  • Tip string | RegExp
  • CLI: -t <pattern>, --testNamePattern=<pattern>, --test-name-pattern=<pattern>

Tam adları desenle eşleşen testleri çalıştırır. Bu özelliğe OnlyRunThis eklerseniz, test adında OnlyRunThis kelimesini içermeyen testler atlanır.

js
import { expect, test } from 'vitest';

// çalıştır
test('OnlyRunThis', () => {
  expect(true).toBe(true);
});

// atlandı
test('doNotRun', () => {
  expect(true).toBe(true);
});

open* ​

  • Tip: boolean
  • Varsayılan: !process.env.CI
  • CLI: --open, --open=false

Vitest UI'ı açar (WIP).

api ​

  • Tip: boolean | number
  • Varsayılan: false
  • CLI: --api, --api.port, --api.host, --api.strictPort

Bağlantı noktasını dinler ve API'yi sunar. true olarak ayarlandığında, varsayılan bağlantı noktası 51204'tür.

browser deneysel ​

  • Varsayılan: { enabled: false }
  • CLI: --browser=<name>, --browser.name=chrome --browser.headless

Tarayıcı testlerini çalıştırmak için yapılandırma seçenekleri. Lütfen "Tarayıcı Yapılandırma Referansı" makalesine bakınız.

WARNING

Bu deneysel bir özelliktir. Kırıcı değişiklikler SemVer'i takip etmeyebilir, lütfen kullanırken Vitest'in sürümünü sabitleyiniz.

clearMocks ​

  • Tip: boolean
  • Varsayılan: false

Her testten önce tüm casuslarda .mockClear() çağırır. Bu, taklit uygulamalarını etkilemeden taklit geçmişini temizler.

mockReset ​

  • Tip: boolean
  • Varsayılan: false

Her testten önce tüm casuslarda .mockReset() çağırır. Bu, taklit geçmişini temizler ve her uygulamayı orijinaline sıfırlar.

restoreMocks ​

  • Tip: boolean
  • Varsayılan: false

Her testten önce tüm casuslarda .mockRestore() çağırır. Bu, taklit geçmişini temizler, her uygulamayı orijinaline geri yükler ve casuslanmış nesnelerin orijinal tanımlayıcılarını geri yükler.

unstubEnvs ​

  • Tip: boolean
  • Varsayılan: false

Her testten önce vi.unstubAllEnvs çağırır.

unstubGlobals ​

  • Tip: boolean
  • Varsayılan: false

Her testten önce vi.unstubAllGlobals çağırır.

testTransformMode ​

  • Tip: { web?, ssr? }

Glob deseniyle eşleşen bir test içinde içe aktarılan tüm modüller için dönüştürme yöntemini belirler. Varsayılan olarak, ortama bağlıdır. Örneğin, JSDOM ortamına sahip testler, tüm dosyaları ssr: false bayrağıyla işleyecek ve Node ortamına sahip testler, tüm modülleri ssr: true ile işleyecektir.

testTransformMode.ssr ​

  • Tip: string[]
  • Varsayılan: []

Belirtilen testler içindeki tüm modüller için SSR dönüştürme hattını kullanır.
Vite eklentileri, bu dosyaları işlerken ssr: true bayrağını alır.

testTransformMode.web ​

  • Tip: string[]
  • Varsayılan: []

Önce normal bir dönüştürme hattı (tarayıcıyı hedefleyen) yapar, ardından kodu Node'da çalıştırmak için bir SSR yeniden yazma işlemi yapar.
Vite eklentileri, bu dosyaları işlerken ssr: false bayrağını alır.

snapshotFormat* ​

  • Tip: PrettyFormatOptions

Anlık görüntü testi için biçim seçeneklerini belirtir. Bu seçenekler pretty-format öğesine aktarılır.

TIP

Bu nesnedeki plugins alanının yoksayılacağını unutmayınız.

Anlık görüntü serileştiricisini pretty-format eklentileri aracılığıyla genişletmeniz gerekiyorsa, lütfen expect.addSnapshotSerializer API'sini veya snapshotSerializers seçeneğini kullanınız.

snapshotSerializers* ​

  • Tip: string[]
  • Varsayılan: []

Anlık görüntü testi için anlık görüntü serileştirici modüllerinin yollarının bir listesi. Özel anlık görüntü serileştiricileri eklemek istiyorsanız faydalıdır. Daha fazla bilgi için Özel Serileştirici bölümüne bakınız.

resolveSnapshotPath* ​

  • Tip: (testPath: string, snapExtension: string, context: { config: SerializedConfig }) => string
  • Varsayılan: anlık görüntü dosyalarını __snapshots__ dizininde depolar

Varsayılan anlık görüntü yolunu geçersiz kılar. Örneğin, anlık görüntüleri test dosyalarının yanına depolamak için aşağıdaki gibi yapılandırabilirsiniz:

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

export default defineConfig({
  test: {
    resolveSnapshotPath: (testPath, snapExtension) => testPath + snapExtension,
  },
});

allowOnly ​

  • Tip: boolean
  • Varsayılan: !process.env.CI
  • CLI: --allowOnly, --allowOnly=false

Yalnızca olarak işaretlenmiş testlere ve süitlere izin verir.

dangerouslyIgnoreUnhandledErrors* ​

  • Tip: boolean
  • Varsayılan: false
  • CLI: --dangerouslyIgnoreUnhandledErrors --dangerouslyIgnoreUnhandledErrors=false

Meydana gelen işlenmemiş hataları yoksayar.

passWithNoTests* ​

  • Tip: boolean
  • Varsayılan: false
  • CLI: --passWithNoTests, --passWithNoTests=false

Test bulunamazsa Vitest başarısız olmaz.

logHeapUsage ​

  • Tip: boolean
  • Varsayılan: false
  • CLI: --logHeapUsage, --logHeapUsage=false

Her testten sonra yığın kullanımını gösterir. Bellek sızıntılarını ayıklamak için faydalıdır.

css ​

  • Tip: boolean | { include?, exclude?, modules? }

CSS'in işlenip işlenmeyeceğini yapılandırır. Hariç tutulduğunda, CSS dosyaları sonraki işlemeyi atlamak için boş dizelerle değiştirilir. CSS Modülleri, çalışma zamanını etkilememek için bir proxy döndürür.

css.include ​

  • Tip: RegExp | RegExp[]
  • Varsayılan: []

Gerçek CSS döndürmesi ve Vite hattı tarafından işlenmesi gereken dosyalar için RegExp desenini belirtir.

TIP

Tüm CSS dosyalarını işlemek için /.+/ kullanın.

css.exclude ​

  • Tip: RegExp | RegExp[]
  • Varsayılan: []

Boş bir CSS dosyası döndürecek dosyalar için RegExp desenini belirtir.

css.modules ​

  • Tip: { classNameStrategy? }
  • Varsayılan: {}

css.modules.classNameStrategy ​

  • Tip: 'stable' | 'scoped' | 'non-scoped'
  • Varsayılan: 'stable'

CSS dosyalarını işlemeye karar verirseniz, CSS modüllerindeki sınıf adlarının kapsamlı olup olmayacağını yapılandırabilirsiniz. Seçeneklerden birini seçebilirsiniz:

  • stable: sınıf adları _${name}_${hashedFilename} olarak oluşturulur. Bu, oluşturulan sınıfın CSS içeriği değişirse aynı kalacağı, ancak dosyanın adı değiştirilirse veya dosya başka bir klasöre taşınırsa değişeceği anlamına gelir. Bu ayar, anlık görüntü özelliğini kullanıyorsanız faydalıdır.
  • scoped: sınıf adları, bir tane varsa ve CSS işleme etkinse, css.modules.generateScopedName yöntemine saygı duyarak her zamanki gibi oluşturulur. Varsayılan olarak, dosya adı _${name}_${hash} olarak oluşturulur, burada hash dosya adını ve dosyanın içeriğini içerir.
  • non-scoped: sınıf adları hashlenmez.

WARNING

Varsayılan olarak, Vitest bir proxy dışa aktarır ve CSS Modülleri işlemeyi bypass eder. Sınıflarınızdaki CSS özelliklerine güveniyorsanız, include seçeneğini kullanarak CSS işlemeyi etkinleştirmeniz gereklidir.

maxConcurrency ​

  • Tip: number
  • Varsayılan: 5
  • CLI: --max-concurrency=10, --maxConcurrency=10

test.concurrent ile işaretlenmiş, aynı anda çalışmasına izin verilen test sayısını belirtir.

Bu limitin üzerindeki testler, uygun bir yuva göründüğünde çalıştırılmak üzere sıraya alınır.

cache* ​

  • Tip: false
  • CLI: --no-cache, --cache=false

Önbellek özelliğini devre dışı bırakmak istiyorsanız bu seçeneği kullanınız. Şu anda Vitest, daha uzun ve başarısız testleri önce çalıştırmak için test sonuçları için önbellek tutar.

Önbellek dizini Vite'ın cacheDir seçeneği tarafından kontrol edilir:

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

export default defineConfig({
  cacheDir: 'custom-folder/.vitest',
});

Dizini yalnızca Vitest için process.env.VITEST kullanarak sınırlayabilirsiniz:

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

export default defineConfig({
  cacheDir: process.env.VITEST ? 'custom-folder/.vitest' : undefined,
});

sequence ​

  • Tip: { sequencer?, shuffle?, seed?, hooks?, setupFiles?, groupOrder }

Testlerin nasıl sıralanacağına ilişkin seçenekleri belirtir.

Sıra seçeneklerini CLI'ye nokta notasyonuyla sağlayabilirsiniz:

sh
npx vitest --sequence.shuffle --sequence.seed=1000

sequence.sequencer* ​

  • Tip: TestSequencerConstructor
  • Varsayılan: BaseSequencer

Parçalama ve sıralama yöntemlerini tanımlayan özel bir sınıfı belirtir. Yalnızca sort ve shard yöntemlerinden birini yeniden tanımlamanız gerekiyorsa vitest/node'dan BaseSequencer'ı genişletebilirsiniz, ancak her ikisi de mevcut olmalıdır.

Parçalama, sıralamadan önce ve yalnızca --shard seçeneği sağlanırsa yapılır.

sequencer.groupOrder belirtilirse, sıralayıcı her grup ve havuz için bir kez çağrılacaktır.

groupOrder 3.2.0+ ​

  • Tip: number
  • Varsayılan: 0

Birden çok proje kullanırken bu projenin testlerinin çalışma sırasını kontrol eder.

  • Aynı grup sıra numarasına sahip projeler birlikte çalışır ve gruplar en düşükten en yükseğe doğru çalıştırılır.
  • Bu seçeneği ayarlamazsanız, tüm projeler paralel olarak çalışır.
  • Birkaç proje aynı grup sırasını kullanıyorsa, aynı anda çalışır.

Bu ayar yalnızca projelerin çalışma sırasını etkiler, bir proje içindeki testlerin sırasını etkilemez. Bir proje içindeki test izolasyonunu veya testlerin sırasını kontrol etmek için isolate ve sequence.sequencer seçeneklerini kullanınız.

Örnek

Bu örneği göz önünde bulundurun:

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

export default defineConfig({
  test: {
    projects: [
      {
        test: {
          name: 'slow',
          sequence: {
            groupOrder: 0,
          },
        },
      },
      {
        test: {
          name: 'fast',
          sequence: {
            groupOrder: 0,
          },
        },
      },
      {
        test: {
          name: 'flaky',
          sequence: {
            groupOrder: 1,
          },
        },
      },
    ],
  },
});

Bu projelerdeki testler şu sırayla çalışacaktır:

 0. slow  |
          |> birlikte çalışıyor
 0. fast  |

 1. flaky |> yavaş ve hızlıdan sonra tek başına çalışır

sequence.shuffle ​

  • Tip: boolean | { files?, tests? }
  • Varsayılan: false
  • CLI: --sequence.shuffle, --sequence.shuffle=false

Dosyaların ve testlerin rastgele çalışmasını istiyorsanız, bu seçenekle veya CLI argümanı --sequence.shuffle ile etkinleştirebilirsiniz.

Vitest genellikle testleri sıralamak için önbelleği kullanır, böylece uzun süren testler daha erken başlar. Bu, testlerin daha hızlı çalışmasına katkı sağlar. Dosyalarınız ve testleriniz rastgele sırada çalışırsa bu performans iyileştirmesini kaybedersiniz, ancak yanlışlıkla daha önce çalışan başka bir teste bağlı olan testleri izlemek için faydalı olabilir.

sequence.shuffle.files ​

  • Tip: boolean
  • Varsayılan: false
  • CLI: --sequence.shuffle.files, --sequence.shuffle.files=false

Dosyaları rastgele sıralayıp sıralamayacağını belirtir. Bu seçeneği etkinleştirirseniz uzun süren testlerin daha erken başlamayacağını unutmayınız.

sequence.shuffle.tests ​

  • Tip: boolean
  • Varsayılan: false
  • CLI: --sequence.shuffle.tests, --sequence.shuffle.tests=false

Testleri rastgele sıralayıp sıralamayacağını belirtir.

sequence.concurrent ​

  • Tip: boolean
  • Varsayılan: false
  • CLI: --sequence.concurrent, --sequence.concurrent=false

Testlerin paralel çalışmasını istiyorsanız, bu seçenekle veya CLI argümanı --sequence.concurrent ile etkinleştirebilirsiniz.

sequence.seed* ​

  • Tip: number
  • Varsayılan: Date.now()
  • CLI: --sequence.seed=1000

Testler rastgele sırada çalışıyorsa rastgeleleştirme tohumunu ayarlar.

sequence.hooks ​

  • Tip: 'stack' | 'list' | 'parallel'
  • Varsayılan: 'stack'
  • CLI: --sequence.hooks=<value>

Kancaların yürütülme sırasını değiştirir.

  • stack, "sonra" kancalarını ters sırada sıralar, "önce" kancaları tanımlandıkları sırada çalışır.
  • list, tüm kancaları tanımlandıkları sırada sıralar.
  • parallel, tek bir gruptaki kancaları paralel olarak çalıştırır (üst süitlerdeki kancalar yine de mevcut süitin kancalarından önce çalışır).

TIP

Bu seçeneğin onTestFinished üzerinde bir etkisi yoktur. Her zaman ters sırada çağrılır.

sequence.setupFiles ​

  • Tip: 'list' | 'parallel'
  • Varsayılan: 'parallel'
  • CLI: --sequence.setupFiles=<value>

Kurulum dosyalarının yürütülme sırasını değiştirir.

  • list, kurulum dosyalarını tanımlandıkları sırada çalıştırır.
  • parallel, kurulum dosyalarını paralel olarak çalıştırır.

typecheck ​

Tür denetimi test ortamını yapılandırmak için seçenekler.

typecheck.enabled ​

  • Tip: boolean
  • Varsayılan: false
  • CLI: --typecheck, --typecheck.enabled

Normal testlerinizle birlikte tür denetimini etkinleştirir.

typecheck.only ​

  • Tip: boolean
  • Varsayılan: false
  • CLI: --typecheck.only

Tür denetimi etkinleştirildiğinde yalnızca tür denetimi testlerini çalıştırır. CLI kullanırken, bu seçenek otomatik olarak tür denetimini etkinleştirir.

typecheck.checker ​

  • Tip: 'tsc' | 'vue-tsc' | string
  • Varsayılan: tsc

Tür denetimi için kullanılacak araçları belirtir. Vitest, türe bağlı olarak daha kolay ayrıştırma için belirli parametrelerle bir işlem başlatır. Denetleyici, tsc ile aynı çıktı biçimini uygulamalıdır.

Tür denetleyiciyi kullanmak için bir paket yüklemeniz gereklidir:

  • tsc için typescript paketi gerekir
  • vue-tsc için vue-tsc paketi gerekir

Ayrıca, tsc --noEmit --pretty false ile aynı çıktıyı üreten özel bir ikiliye veya komut adına giden bir yol da geçirebilirsiniz.

typecheck.include ​

  • Tip: string[]
  • Varsayılan: ['**/*.{test,spec}-d.?(c|m)[jt]s?(x)']

Test dosyaları olarak ele alınması gereken dosyalar için glob desenini belirtir.

typecheck.exclude ​

  • Tip: string[]
  • Varsayılan: ['**/node_modules/**', '**/dist/**', '**/cypress/**', '**/.{idea,git,cache,output,temp}/**']

Test dosyaları olarak ele alınmaması gereken dosyalar için glob desenini belirtir.

typecheck.allowJs ​

  • Tip: boolean
  • Varsayılan: false

@ts-check yorumu olan JS dosyalarını kontrol eder. Tsconfig'de etkinleştirdiyseniz, bu onu geçersiz kılmaz.

typecheck.ignoreSourceErrors ​

  • Tip: boolean
  • Varsayılan: false

Vitest test dosyaları dışında hatalar bulursa başarısız olmaz. Bu, test dışı hataları hiç göstermez.

Varsayılan olarak, Vitest kaynak hatası bulursa, test süitesini başarısız kılar.

typecheck.tsconfig ​

  • Tip: string
  • Varsayılan: en yakın tsconfig.json'ı bulmaya çalışır

Proje köküne göre özel tsconfig dosyasının yolu.

typecheck.spawnTimeout ​

  • Tip: number
  • Varsayılan: 10_000

Tür denetleyiciyi başlatmak için geçen minimum süre (milisaniye) belirtir.

slowTestThreshold* ​

  • Tip: number
  • Varsayılan: 300
  • CLI: --slow-test-threshold=<number>, --slowTestThreshold=<number>

Bir testin veya süitin yavaş kabul edildiği ve sonuçlarda bu şekilde rapor edildiği milisaniye sayısını belirtir.

chaiConfig ​

  • Tip: { includeStack?, showDiff?, truncateThreshold? }
  • Varsayılan: { includeStack: false, showDiff: true, truncateThreshold: 40 }

Chai yapılandırmasına eşdeğer seçenekleri belirtir.

chaiConfig.includeStack ​

  • Tip: boolean
  • Varsayılan: false

Onay hata mesajına yığın izinin dahil edilip edilmeyeceğini etkiler. Varsayılan false değeri, hata mesajındaki yığın izini gizler.

chaiConfig.showDiff ​

  • Tip: boolean
  • Varsayılan: true

Atılan AssertionErrors'a showDiff bayrağının dahil edilip edilmeyeceğini etkiler. false her zaman false olur; true, onay bir farkın gösterilmesini istediğinde true olur.

chaiConfig.truncateThreshold ​

  • Tip: number
  • Varsayılan: 40

Onay hatalarındaki gerçek ve beklenen değerler için uzunluk eşiğini ayarlar. Bu eşik aşılırsa, örneğin büyük veri yapıları için, değer [ Array(3) ] veya { Object (prop1, prop2) } gibi bir şeyle değiştirilir. Kırpmayı tamamen devre dışı bırakmak istiyorsanız 0 olarak ayarlayınız.

Bu yapılandırma seçeneği, test.each başlıklarındaki ve onay hata mesajındaki değerlerin kırpılmasını etkiler.

bail ​

  • Tip: number
  • Varsayılan: 0
  • CLI: --bail=<value>

Belirtilen sayıda test başarısız olduğunda test yürütmesini durdurur.

Varsayılan olarak Vitest, bazıları başarısız olsa bile tüm test senaryolarınızı çalıştırır. Bu, %100 başarılı derlemelerle ilgilenen ve test hataları meydana geldiğinde test yürütmesini mümkün olduğunca erken durdurmak isteyen CI derlemeleri için uygun olmayabilir. bail seçeneği, hatalar meydana geldiğinde daha fazla testin çalışmasını engellemek için CI çalıştırmalarını hızlandırmak için kullanılabilir.

retry ​

  • Tip: number
  • Varsayılan: 0
  • CLI: --retry=<value>

Test başarısız olursa belirli sayıda kez yeniden dener.

onConsoleLog* ​

  • Tip: (log: string, type: 'stdout' | 'stderr') => boolean | void

Testlerde console.log için özel bir işleyici tanımlar. false döndürürseniz, Vitest günlüğü konsola yazdırmaz.

Üçüncü taraf kütüphanelerden gelen günlükleri filtrelemek için faydalı olabilir.

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

export default defineConfig({
  test: {
    onConsoleLog(log: string, type: 'stdout' | 'stderr'): boolean | void {
      return !(log === 'üçüncü taraf kütüphaneden mesaj' && type === 'stdout');
    },
  },
});

onStackTrace* ​

  • Tip: (error: Error, frame: ParsedStack) => boolean | void

Hataları işlerken her yığın izinin her çerçevesine bir filtreleme fonksiyonu uygular. İlk argüman olan error, standart bir Error ile aynı özelliklere sahip bir nesnedir, ancak gerçek bir örnek değildir.

Üçüncü taraf kütüphanelerden gelen yığın izi çerçevelerini filtrelemek için faydalı olabilir.

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

export default defineConfig({
  test: {
    onStackTrace(error: Error, { file }: ParsedStack): boolean | void {
      // Bir ReferenceError ile karşılaştıysak, tüm yığını göster.
      if (error.name === 'ReferenceError') {
        return;
      }

      // Üçüncü taraf kütüphanelerden gelen tüm çerçeveleri reddet.
      if (file.includes('node_modules')) {
        return false;
      }
    },
  },
});

diff ​

  • Tip: string
  • CLI: --diff=<path>

DiffOptions nesnesi veya DiffOptions dışa aktaran bir modülün yolu. Fark ekranını özelleştirmek istiyorsanız faydalıdır.

Örneğin, bir yapılandırma nesnesi olarak:

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

export default defineConfig({
  test: {
    diff: {
      aIndicator: c.bold('--'),
      bIndicator: c.bold('++'),
      omitAnnotationLines: true,
    },
  },
});

Veya bir modül olarak:

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

export default defineConfig({
  test: {
    diff: './vitest.diff.ts',
  },
});
ts
import type { DiffOptions } from 'vitest';
import c from 'picocolors';

export default {
  aIndicator: c.bold('--'),
  bIndicator: c.bold('++'),
  omitAnnotationLines: true,
} satisfies DiffOptions;

diff.expand ​

  • Tip: boolean
  • Varsayılan: true
  • CLI: --diff.expand=false

Tüm ortak satırları genişletir.

diff.truncateThreshold ​

  • Tip: number
  • Varsayılan: 0
  • CLI: --diff.truncateThreshold=<path>

Görüntülenecek fark sonucunun maksimum uzunluğunu belirtir. Bu eşiğin üzerindeki farklar kesilir. Varsayılan değer 0 ile kesme işlemi gerçekleşmez.

diff.truncateAnnotation ​

  • Tip: string
  • Varsayılan: '... Fark sonucu kesildi'
  • CLI: --diff.truncateAnnotation=<annotation>

Fark sonucu kesildiğinde çıktının sonunda gösterilen açıklamayı belirtir.

diff.truncateAnnotationColor ​

  • Tip: DiffOptionsColor = (arg: string) => string
  • Varsayılan: noColor = (string: string): string => string

Kesme açıklamasının rengini belirtir, varsayılan olarak renksiz çıktı verir.

diff.printBasicPrototype ​

  • Tip: boolean
  • Varsayılan: false

Fark çıktısında temel prototip Object ve Array'i yazdırır.

diff.maxDepth ​

  • Tip: number
  • Varsayılan: 20 (veya farklı türleri karşılaştırırken 8)

İç içe nesneleri yazdırırken tekrarlama derinliğini sınırlar.

fakeTimers ​

  • Tip: FakeTimerInstallOpts

Vitest'in vi.useFakeTimers() kullanırken @sinon/fake-timers öğesine ileteceği seçenekleri belirtir.

fakeTimers.now ​

  • Tip: number | Date
  • Varsayılan: Date.now()

Belirtilen Unix zaman damgası ile sahte zamanlayıcıları başlatır.

fakeTimers.toFake ​

  • Tip: ('setTimeout' | 'clearTimeout' | 'setImmediate' | 'clearImmediate' | 'setInterval' | 'clearInterval' | 'Date' | 'nextTick' | 'hrtime' | 'requestAnimationFrame' | 'cancelAnimationFrame' | 'requestIdleCallback' | 'cancelIdleCallback' | 'performance' | 'queueMicrotask')[]
  • Varsayılan: nextTick ve queueMicrotask hariç global olarak mevcut her şey

Taklit edilecek genel yöntemlerin ve API'lerin adlarını içeren bir diziyi belirtir.

Yalnızca setTimeout() ve nextTick()'i taklit etmek için bu özellik ['setTimeout', 'nextTick'] olarak belirtilir.

--pool=forks kullanarak Vitest'i node:child_process içinde çalıştırırken nextTick'i taklit etmek desteklenmemektedir. NodeJS, node:child_process içinde dahili olarak process.nextTick kullanır ve taklit edildiğinde takılır. nextTick'i taklit etmek, Vitest'i --pool=threads ile çalıştırırken desteklenmektedir.

fakeTimers.loopLimit ​

  • Tip: number
  • Varsayılan: 10_000

vi.runAllTimers() çağrıldığında çalıştırılacak maksimum zamanlayıcı sayısını belirtir.

fakeTimers.shouldAdvanceTime ​

  • Tip: boolean
  • Varsayılan: false

@sinonjs/fake-timers'a, gerçek sistem zamanı kaymasına göre taklit edilen zamanı otomatik olarak artırmasını sağlar (örn. gerçek sistem zamanındaki her 20ms değişiklik için taklit edilen zaman 20ms artırılır).

fakeTimers.advanceTimeDelta ​

  • Tip: number
  • Varsayılan: 20

Yalnızca shouldAdvanceTime: true ile kullanıldığında geçerlidir. Gerçek sistem zamanındaki her advanceTimeDelta ms değişiklik için taklit edilen zamanı advanceTimeDelta ms artırır.

fakeTimers.shouldClearNativeTimers ​

  • Tip: boolean
  • Varsayılan: true

Sahte zamanlayıcılara, "yerel" (yani sahte olmayan) zamanlayıcıları ilgili işleyicilerine devrederek temizlemelerini sağlar. Devre dışı bırakıldığında, sahte zamanlayıcı oturumu başlamadan önce zamanlayıcılar mevcutsa potansiyel olarak beklenmedik davranışlara yol açabilir.

workspace* ​

KULLANIMDAN KALDIRILDI

Bu seçenek kullanımdan kaldırıldı ve bir sonraki ana sürümde kaldırılır. Lütfen bunun yerine projects kullanınız.

  • Tip: string | TestProjectConfiguration[]
  • CLI: --workspace=./file.js
  • Varsayılan: Yapılandırma dosyasına veya köke yakın vitest.{workspace,projects}.{js,ts,json} dosyasını belirtir.

Kök dizinine göre bir çalışma alanı yapılandırma dosyasının yolunu belirtir.

Vitest 3'ten itibaren, çalışma alanı dizisini kök yapılandırmasında da tanımlayabilirsiniz. Çalışma alanı yapılandırmada manuel olarak tanımlanırsa, Vitest kökteki vitest.workspace dosyasını yoksayar.

projects* ​

  • Tip: TestProjectConfiguration[]
  • Varsayılan: []

Bir projeler dizisini belirtir.

isolate ​

  • Tip: boolean
  • Varsayılan: true
  • CLI: --no-isolate, --isolate=false

Testleri izole bir ortamda çalıştırır. Bu seçeneğin vmThreads ve vmForks havuzları üzerinde bir etkisi yoktur.

Bu seçeneği devre dışı bırakmak, kodunuz yan etkilere dayanmıyorsa (genellikle node ortamına sahip projeler için geçerlidir) performansı iyileştirebilir.

TIP

poolOptions özelliğini kullanarak belirli havuzlar için izolasyonu devre dışı bırakabilirsiniz.

includeTaskLocation ​

  • Tip: boolean
  • Varsayılan: false

Vitest API'si raporlayıcılarda görevleri aldığında location özelliği dahil edilmeli midir? Çok sayıda testiniz varsa, bu küçük bir performans düşüşüne yol açabilir.

location özelliği, orijinal dosyadaki test veya describe konumuna karşılık gelen column ve line değerlerine sahiptir.

Bu seçenek, açıkça devre dışı bırakmazsanız ve Vitest'i şunlarla çalıştırıyorsanız otomatik olarak etkinleştirilir:

  • Vitest UI
  • veya başsız mod olmadan Tarayıcı Modu kullanıyorsanız
  • veya HTML Raporlayıcı kullanıyorsanız

TIP

Bu seçeneğin, buna dayanan özel kod kullanmıyorsanız hiçbir etkisi yoktur.

snapshotEnvironment ​

  • Tip: string

Özel bir anlık görüntü ortamı uygulamasının yolunu belirtir. Bu, testlerinizi Node.js API'lerini desteklemeyen bir ortamda çalıştırıyorsanız faydalıdır. Bu seçeneğin, tarayıcı çalıştırıcısı üzerinde bir etkisi yoktur.

Bu nesne SnapshotEnvironment şeklinde olmalı ve anlık görüntü dosyalarını çözümlemek ve okumak/yazmak için kullanılır:

ts
export interface SnapshotEnvironment {
  getVersion: () => string;
  getHeader: () => string;
  resolvePath: (filepath: string) => Promise<string>;
  resolveRawPath: (testPath: string, rawPath: string) => Promise<string>;
  saveSnapshotFile: (filepath: string, snapshot: string) => Promise<void>;
  readSnapshotFile: (filepath: string) => Promise<string | null>;
  removeSnapshotFile: (filepath: string) => Promise<void>;
}

API'nin yalnızca bir kısmını geçersiz kılmanız gerekiyorsa, varsayılan VitestSnapshotEnvironment'ı vitest/snapshot giriş noktasından genişletebilirsiniz.

WARNING

Bu düşük seviyeli bir seçenektir ve yalnızca varsayılan Node.js API'lerine erişiminizin olmadığı gelişmiş durumlar için kullanılması önerilir.

Yalnızca anlık görüntüler özelliğini yapılandırmanız gerekiyorsa, snapshotFormat veya resolveSnapshotPath seçeneklerini kullanınız.

env ​

  • Tip: Partial<NodeJS.ProcessEnv>

Testler sırasında process.env ve import.meta.env üzerinde kullanılabilen ortam değişkenlerini belirtir. Bu değişkenler ana süreçte (örneğin globalSetup'ta) kullanılamaz.

expect ​

  • Tip: ExpectOptions

expect.requireAssertions ​

  • Tip: boolean
  • Varsayılan: false

Her testin başında expect.hasAssertions() çağrılmasıyla aynı işlevi görür. Bu, hiçbir testin yanlışlıkla geçmemesini sağlar.

TIP

Bu yalnızca Vitest'in expect'i ile çalışır. Eğer assert veya .should onaylarını kullanırsanız, bunlar sayılmaz ve testiniz beklenen onayların eksikliği nedeniyle başarısız olur.

Bunun değerini vi.setConfig({ expect: { requireAssertions: false } }) çağırarak değiştirebilirsiniz. Yapılandırma, vi.resetConfig manuel olarak çağrılana kadar sonraki her expect çağrısına uygulanır.

expect.poll ​

expect.poll için genel yapılandırma seçeneklerini belirtir. Bunlar, expect.poll(condition, options) öğesine iletebileceğiniz seçeneklerle aynıdır.

expect.poll.interval ​
  • Tip: number
  • Varsayılan: 50

Milisaniye cinsinden yoklama aralığını belirtir.

expect.poll.timeout ​
  • Tip: number
  • Varsayılan: 1000

Milisaniye cinsinden yoklama zaman aşımı süresini belirtir.

printConsoleTrace ​

  • Tip: boolean
  • Varsayılan: false

Herhangi bir console yöntemi çağrıldığında konsol izlerini her zaman yazdırır. Bu, hata ayıklama için faydalıdır.

attachmentsDir 3.2.0+ ​

  • Tip: string
  • Varsayılan: '.vitest-attachments'

context.annotate tarafından oluşturulan ekleri depolamak için dizin yolunu belirtir, proje köküne göre.

Pager
Önceki sayfaÖzellikler
Sonraki sayfaTest API Referansları

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

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/config/

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

Copyright (c) 2021-Present Vitest Team