Skip to content
Vitest 1
Main Navigation PrzewodnikAPIKonfiguracjaZaawansowany
1.6.1
0.34.6

Polski

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

Polski

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

Wygląd

Sidebar Navigation

Przewodnik

Dlaczego Vitest

Wprowadzenie

Funkcje

Przestrzeń robocza

Interfejs Linii Poleceń

Filtrowanie Testów

Reportery

Pokrycie kodu

Snapshot

Mockowanie

Testowanie typów

Interfejs użytkownika Vitest

Tryb przeglądarki

Testowanie w kodzie źródłowym

Kontekst Testowy

Środowisko Testowe

Rozszerzanie Matcherów

Integracje z IDE

Debugowanie

Porównania z innymi narzędziami do uruchamiania testów

Przewodnik migracji

Częste błędy

Poprawa wydajności

API

Dokumentacja API Testów

Funkcje Mockujące

Vi

expect

expectTypeOf

assert

assertType

Konfiguracja

Zarządzanie plikiem konfiguracyjnym Vitest

Konfiguracja Vitest

Na tej stronie

Testowanie w kodzie źródłowym ​

Vitest umożliwia uruchamianie testów bezpośrednio w kodzie źródłowym, obok implementacji, podobnie jak testy modułowe w Rust.

Dzięki temu testy współdzielą ten sam zakres (closure) co implementacja i mogą testować stany prywatne bez konieczności ich eksportowania. Dodatkowo, zapewnia to szybsze sprzężenie zwrotne podczas programowania.

Konfiguracja ​

Aby rozpocząć, dodaj blok if (import.meta.vitest) na końcu pliku źródłowego i umieść w nim testy. Przykład:

ts
// src/index.ts

// implementacja
export function add(...args: number[]) {
  return args.reduce((a, b) => a + b, 0);
}

// testy w kodzie źródłowym
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);
  });
}

Zaktualizuj konfigurację includeSource w Vitest, aby uwzględnić pliki w katalogu src/:

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

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

Teraz możesz uruchomić testy!

bash
$ npx vitest

Kompilacja produkcyjna ​

Podczas kompilacji produkcyjnej należy ustawić opcje define w pliku konfiguracyjnym, aby bundler mógł usunąć martwy kod (dead code elimination). Na przykład, w Vite:

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

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

Inne bundlery ​

unbuild
ts
// build.config.ts
import { defineBuildConfig } from 'unbuild';

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

Więcej informacji: unbuild

rollup
ts
// rollup.config.js
import replace from '@rollup/plugin-replace'; 

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

Więcej informacji: Rollup

TypeScript ​

Aby włączyć obsługę TypeScript dla import.meta.vitest, dodaj vitest/importMeta do pliku tsconfig.json:

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

Zobacz test/import-meta dla pełnego przykładu.

Uwagi ​

Ta funkcja może być przydatna do:

  • Testów jednostkowych funkcji lub narzędzi o wąskim zakresie
  • Tworzenia prototypów
  • Wbudowanych asercji

W przypadku bardziej złożonych testów, takich jak testy komponentów lub testy E2E, zaleca się używanie oddzielnych plików testowych.

Pager
Poprzednia stronaTryb przeglądarki
Następna stronaKontekst Testowy

Opublikowano na licencji MIT.

Copyright (c) 2024 Mithril Contributors

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

Opublikowano na licencji MIT.

Copyright (c) 2024 Mithril Contributors