Skip to content
Vitest 3
Main Navigation Kılavuz & APIYapılandırmaTarayıcı ModuGelişmiş API
3.2.0
2.1.9
1.6.1
0.34.6

Türkçe

English
简体中文
繁體中文
Español
Français
Русский
Português – Brasil
Deutsch
日本語
한국어
Italiano
Polski
čeština
magyar

Türkçe

English
简体中文
繁體中文
Español
Français
Русский
Português – Brasil
Deutsch
日本語
한국어
Italiano
Polski
čeština
magyar

Görünüm

Sidebar Navigation

Giriş

Neden Vitest

Başlarken

Özellikler

Vitest'i Yapılandırma

API

Test API Referansları

Mock Fonksiyonlar

Vi

expect

expectTypeOf

assert

assertType

Kılavuz

Komut Satırı Arayüzü

Test Filtreleme

Test Projeleri

Raporlayıcılar

Kapsam

Anlık Görüntüler

Mocking

Paralellik

Tür Testleri

Vitest UI

Kaynak İçi Test

Test Ortamı

Test Açıklamaları

Test Ortamı

Eşleştiricileri Genişletme

IDE Entegrasyonları

Hata Ayıklama

Sık Karşılaşılan Hatalar

Geçiş Kılavuzu

Vitest 3.0'a Geçiş

Jest'ten Geçiş

Performans

Test Performansını Profillendirme

Performansı İyileştirme

Tarayıcı Modu

Gelişmiş API

Diğer Test Çalıştırıcılarla Karşılaştırmalar

Bu sayfada

Test Ortamı ​

Vitest, kodunuzu belirli bir ortamda çalıştırmak için environment seçeneğini sunar. Ortamın davranışını environmentOptions seçeneğiyle özelleştirebilirsiniz.

Varsayılan olarak aşağıdaki ortamları kullanabilirsiniz:

  • node varsayılan ortamdır.
  • jsdom tarayıcı ortamını taklit eder ve Tarayıcı API'si sağlar. jsdom paketini kullanır.
  • happy-dom tarayıcı ortamını taklit eder ve Tarayıcı API'si sağlar. jsdom'dan daha hızlı kabul edilir ancak bazı API'lerden yoksundur. happy-dom paketini kullanır.
  • edge-runtime Vercel'in edge-runtime'ını taklit eder. @edge-runtime/vm paketini kullanır.

INFO

jsdom veya happy-dom ortamlarını kullanırken, Vitest CSS ve varlıkları içe aktarırken Vite'ın kurallarını takip eder. Harici bağımlılıkları içe aktarma işlemi unknown extension .css hatasıyla başarısız olursa, tüm paketleri server.deps.external seçeneğine ekleyerek tüm içe aktarma zincirini manuel olarak dahil etmeniz gerekir. Örneğin, kaynak kodu -> package-1 -> package-2 -> package-3 şeklindeki bir içe aktarma zincirinde package-3 içinde hata oluşursa, her üç paketi de server.deps.external seçeneğine eklemeniz gerekir.

Harici bağımlılıklar içindeki CSS ve varlıkların require işlemleri otomatik olarak çözülür.

WARNING

Ortamlar yalnızca Node.js'de testler çalıştırılırken kullanılabilir.

browser, Vitest'te bir ortam olarak kabul edilmez. Testlerinizin bir kısmını Tarayıcı Modu kullanarak çalıştırmak isterseniz, bir test projesi oluşturabilirsiniz.

Belirli Dosyalar İçin Ortamlar ​

Yapılandırmanızda environment seçeneğini ayarladığınızda, bu ayar projenizdeki tüm test dosyalarına uygulanır. Daha ayrıntılı kontrol sağlamak için, belirli dosyalar için ortamı belirtmek üzere kontrol yorumlarını kullanabilirsiniz. Kontrol yorumları, @vitest-environment ile başlayıp ardından ortam adının belirtildiği yorumlardır:

ts
// @vitest-environment jsdom

import { expect, test } from 'vitest';

test('test', () => {
  expect(typeof window).not.toBe('undefined');
});

Alternatif olarak, glob kalıplarına göre ortamı belirten environmentMatchGlobs seçeneğini de yapılandırabilirsiniz.

Özel Ortam ​

Vitest ortamını özelleştirmek için kendi paketinizi oluşturabilirsiniz. Bunu yapmak için vitest-environment-${name} adında bir paket oluşturun veya geçerli bir JS/TS dosyasının yolunu belirtin. Bu paket, Environment yapısında bir nesne dışa aktarmalıdır:

ts
import type { Environment } from 'vitest/environments';

export default <Environment>{
  name: 'custom',
  transformMode: 'ssr',
  // isteğe bağlı - yalnızca "experimental-vm" havuzunu destekliyorsanız
  async setupVM() {
    const vm = await import('node:vm');
    const context = vm.createContext();
    return {
      getVmContext() {
        return context;
      },
      teardown() {
        // bu ortamı kullanan tüm testler çalıştırıldıktan sonra çağrılır
      },
    };
  },
  setup() {
    // özel kurulum
    return {
      teardown() {
        // bu ortamı kullanan tüm testler çalıştırıldıktan sonra çağrılır
      },
    };
  },
};

WARNING

Vitest, ortam nesnesinde transformMode seçeneğini zorunlu kılar. Bu değer, ssr veya web ile eşit olmalıdır. Bu değer, eklentilerin kaynak kodu nasıl dönüştüreceğini belirler. ssr olarak ayarlanırsa, eklenti hook'ları dosyaları dönüştürürken veya çözerken ssr: true değerini alacaktır. Aksi takdirde, ssr false olarak ayarlanır.

vitest/environments girişi aracılığıyla varsayılan Vitest ortamlarına da erişebilirsiniz:

ts
import { builtinEnvironments, populateGlobal } from 'vitest/environments';

console.log(builtinEnvironments); // { jsdom, happy-dom, node, edge-runtime }

Vitest ayrıca, nesnedeki özellikleri genel ad alanına aktarmak için kullanılabilecek populateGlobal yardımcı işlevini de sağlar:

ts
interface PopulateOptions {
  // sınıf olmayan fonksiyonlar genel ad alanına bağlanmalı mı?
  bindFunctions?: boolean;
}

interface PopulateResult {
  // değer orijinal nesnede mevcut olmasa bile kopyalanan tüm anahtarların listesi
  keys: Set<string>;
  // anahtarlarla geçersiz kılınmış olabilecek orijinal nesnenin bir haritası
  // bu değerleri `teardown` işlevi içinde döndürebilirsiniz
  originals: Map<string | symbol, any>;
}

export function populateGlobal(
  global: any,
  original: any,
  options: PopulateOptions
): PopulateResult;
Pager
Önceki sayfaTest Açıklamaları
Sonraki sayfaEşleştiricileri Genişletme

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

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/guide/environment

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

Copyright (c) 2021-Present Vitest Team