Skip to content
Vitest 1
Main Navigation KılavuzAPIYapılandırmaİleri
1.6.1
0.34.6

Türkçe

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

Türkçe

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

Görünüm

Sidebar Navigation

Kılavuz

Neden Vitest

Başlangıç

Özellikler

Çalışma Alanı

Komut Satırı Arayüzü

Test Filtreleme

Raporlayıcılar

Kapsam

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

Sahtecilik (Mocking)

Türleri Test Etme

Vitest Arayüzü

Tarayıcı Modu

Kaynak İçi Test

Test Bağlamı

Test Ortamı

Eşleştiricileri Genişletme

IDE Tümleştirmeleri

Hata Ayıklama

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

Geçiş Rehberi

Yaygın Hatalar

Performansı İyileştirme

API

Test API Başvurusu

Sahte Fonksiyonlar

Vi

expect

expectTypeOf

assert

assertType

Yapılandırma

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

Vitest'in Yapılandırılması

Bu sayfada

Test Ortamı ​

Vitest, kodu belirli bir ortamda çalıştırmak için environment seçeneğini sunar. Ortamın davranışını değiştirmek için environmentOptions seçeneğini kullanabilirsiniz.

Varsayılan olarak şu ortamları kullanabilirsiniz:

  • node: Varsayılan ortamdır.
  • jsdom: jsdom paketini kullanarak Tarayıcı API'lerini sağlayarak bir tarayıcı ortamını taklit eder.
  • happy-dom: Tarayıcı API'lerini sağlayarak bir tarayıcı ortamını taklit eder. jsdom'dan daha hızlı olduğu düşünülmektedir, ancak bazı API'leri eksiktir. happy-dom paketini kullanır.
  • edge-runtime: Vercel'in edge-runtime ortamını simüle eder. @edge-runtime/vm paketini kullanır.

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ı bir kontrol için, belirli dosyalar için ortamı belirtmek üzere kontrol yorumlarını kullanabilirsiniz. Kontrol yorumları, @vitest-environment ile başlar ve ardından ortam adı gelir:

ts
// @vitest-environment jsdom

import { expect, test } from 'vitest';

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

Alternatif olarak, glob desenlerine göre ortamı belirleyen environmentMatchGlobs seçeneğini de ayarlayabilirsiniz.

Özel Ortam ​

0.23.0 sürümünden itibaren, Vitest ortamını genişletmek için vitest-environment-${name} adıyla kendi paketinizi oluşturabilir veya geçerli bir JS dosyasına yol belirtebilirsiniz (0.34.0 sürümünden beri desteklenir). Bu paket, Environment arayüzüne uygun bir nesne dışa aktarmalıdır:

ts
import type { Environment } from 'vitest';

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

0.34.0 sürümünden itibaren Vitest, ortam nesnesinde transformMode seçeneğini gerektirir. Bu seçenek ssr veya web değerlerinden birine eşit olmalıdır. Bu değer, eklentilerin kaynak kodunu nasıl dönüştüreceğini belirler. ssr olarak ayarlanırsa, eklenti kancaları dosyaları dönüştürürken veya çözerken ssr: true değerini alır. Aksi takdirde, ssr false olarak ayarlanır.

Ayrıca, 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, nesne özelliklerini global scope'a taşımaya yarayan populateGlobal yardımcı işlevini de sağlar:

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

interface PopulateResult {
  // Değer orijinal nesnede olmasa bile kopyalanan tüm anahtarların listesi
  keys: Set<string>;
  // Anahtarlar ile üzerine yazılmış olabilecek orijinal nesnenin bir haritası
  originals: Map<string | symbol, any>;
}

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

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

Copyright (c) 2024 Mithril Contributors

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

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

Copyright (c) 2024 Mithril Contributors