Skip to content
Vitest 3
Main Navigation Útmutató & APIKonfigurációBöngésző módHaladó API
3.2.0
2.1.9
1.6.1
0.34.6

magyar

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

magyar

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

Megjelenés

Sidebar Navigation

Bevezetés

Miért Vitest

Első lépések

Jellemzők

Vitest konfigurálása

API

Teszt API Referencia

Mock Függvények

Vi

expect

expectTypeOf

assert

assertType

Útmutató

Parancssori felület

Teszt szűrés

Tesztprojektek

Jelentéskészítők (Reporters)

Kódlefedettség

Snapshot

Mockolás

Párhuzamos végrehajtás

Típusok Tesztelése

Vitest UI

Forráskódba ágyazott tesztelés

Tesztkörnyezet

Teszt annotációk

Tesztkörnyezet

Matcherek kiterjesztése

IDE Integrációk

Hibakeresés

Gyakori hibák

Migrációs útmutató

Migrálás a Vitest 3.0-ra

Migrálás Jesstről

Teljesítmény

Teszt teljesítmény profilozása

Teljesítmény javítása

Böngésző üzemmód

Haladó API

Összehasonlítás más tesztfuttatókkal

Ezen az oldalon

Forráskódba ágyazott tesztelés ​

A Vitest lehetővé teszi a tesztek futtatását közvetlenül a forráskódon belül, az implementációval együtt, hasonlóan a Rust moduljainak tesztjeihez.

Ez a megközelítés biztosítja, hogy a tesztek ugyanazt a hatókört (closure) osszák meg az implementációval, lehetővé téve a privát állapotok tesztelését anélkül, hogy exportálni kellene azokat. Emellett gyorsabb visszajelzési ciklust biztosít a fejlesztés során.

WARNING

Ez az útmutató azt mutatja be, hogyan írhat teszteket a forráskódjába. Ha külön tesztfájlokba szeretne teszteket írni, kövesse a "Tesztírás" útmutatót.

Beállítás ​

A kezdéshez helyezzen el egy if (import.meta.vitest) blokkot a forrásfájl végére, és írjon bele néhány tesztet. Például:

ts
// az implementáció
export function add(...args: number[]) {
  return args.reduce((a, b) => a + b, 0);
}

// forráskódba ágyazott tesztek
if (import.meta.vitest) {
  const { it, expect } = import.meta.vitest;
  it('add', () => {
    expect(add()).toBe(0);
    expect(add(1)).toBe(1);
    expect(add(1, 2, 3)).toBe(6);
  });
}

Állítsa be a includeSource konfigurációt a Vitest számára, hogy a src/ mappában található fájlokat is feldolgozza:

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

export default defineConfig({
  test: {
    includeSource: ['src/**/*.{js,ts}'], 
  },
});

Ezután elkezdheti a tesztelést.

bash
$ npx vitest

Éles build ​

Az éles buildhez be kell állítania a define opciókat a konfigurációs fájlban, lehetővé téve a bundler számára a holt kód eltávolítását. Például Vite-ban:

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

import { defineConfig } from 'vite'

export default defineConfig({
  test: {
    includeSource: ['src/**/*.{js,ts}'],
  },
  define: { 
    'import.meta.vitest': 'undefined', 
  }, 
})

Egyéb bundler eszközök ​

unbuild
ts
import { defineBuildConfig } from 'unbuild'

export default defineBuildConfig({
  replace: { 
    'import.meta.vitest': 'undefined', 
  }, 
  // other options
})

További információ: unbuild

Rollup
ts
import replace from '@rollup/plugin-replace'

export default {
  plugins: [
    replace({ 
      'import.meta.vitest': 'undefined', 
    }) 
  ],
  // other options
}

További információ: Rollup

TypeScript ​

Az import.meta.vitest TypeScript támogatásának biztosításához adja hozzá a vitest/importMeta elemet a tsconfig.json fájlhoz:

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

A teljes példáért lásd az examples/in-source-test példát.

Megjegyzések ​

Ez a funkció hasznos lehet a következőkhöz:

  • Egységtesztelés kis hatókörű függvényekhez vagy segédprogramokhoz
  • Prototípus készítés
  • Beágyazott állítások

Összetettebb tesztek, például komponensek vagy E2E tesztelés esetén ajánlott inkább külön tesztfájlokat használni.

Pager
Előző oldalVitest UI
Következő oldalTesztkörnyezet

A MIT licenc alapján kiadva.

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/guide/in-source

A MIT licenc alapján kiadva.

Copyright (c) 2021-Present Vitest Team