Skip to content
Vitest 3
Main Navigation Leitfaden & APIKonfigurationBrowser-ModusFortgeschritten API
3.2.0
2.1.9
1.6.1
0.34.6

Deutsch

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

Deutsch

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

Aussehen

Sidebar Navigation

Einführung

Warum Vitest

Erste Schritte

Funktionen

Vitest konfigurieren

API

Test-API-Referenz

Mock-Funktionen

Vi

expect

expectTypeOf

assert

assertType

Leitfaden

Befehlszeilenschnittstelle

Testfilterung

Testprojekte

Reporter

Code-Abdeckung

Snapshot

Mocking

Parallelisierung

Typüberprüfungen

Vitest UI

Tests im Quellcode

Test-Kontext

Test-Annotationen

Testumgebung

Matcher erweitern

IDE-Integrationen

Debugging

Häufige Fehler

Migrationsleitfaden

Migration zu Vitest 3.0

Migration von Jest

Performance

Leistungsprofilierung von Tests

Leistung verbessern

Browser-Modus

Erweiterte API

Vergleiche mit anderen Test-Runnern

Auf dieser Seite

Tests im Quellcode ​

Vitest bietet die Möglichkeit, Tests direkt im Quellcode neben der Implementierung auszuführen, ähnlich den Modultests von Rust.

Dadurch teilen sich die Tests denselben Gültigkeitsbereich wie die Implementierungen und können private Zustände testen, ohne diese explizit exportieren zu müssen. Dies ermöglicht zudem einen schnelleren Feedback-Zyklus während der Entwicklung.

WARNING

Dieser Leitfaden beschreibt, wie Tests innerhalb des Quellcodes geschrieben werden. Wenn Sie Tests in separaten Testdateien schreiben möchten, folgen Sie bitte dem Leitfaden "Tests schreiben".

Einrichtung ​

Um zu beginnen, fügen Sie am Ende Ihrer Quelldatei einen if (import.meta.vitest)-Block hinzu und schreiben Sie Ihre Tests darin. Zum Beispiel:

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

// In-Source-Testsuiten
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);
  });
}

Aktualisieren Sie anschließend die includeSource-Konfiguration von Vitest, um die Dateien im src/-Verzeichnis zu erfassen:

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

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

Danach können Sie die Tests ausführen:

bash
$ npx vitest

Produktions-Build ​

Für den Produktions-Build müssen Sie die define-Optionen in Ihrer Konfigurationsdatei angeben, damit der Bundler die Eliminierung von totem Code (Dead Code Elimination) durchführen kann. Ein Beispiel für Vite:

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

import { defineConfig } from 'vite'

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

Andere Bundler ​

unbuild
ts
import { defineBuildConfig } from 'unbuild'

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

Weitere Informationen finden Sie hier: unbuild

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

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

Weitere Informationen finden Sie hier: Rollup

TypeScript ​

Um die TypeScript-Unterstützung für import.meta.vitest zu aktivieren, fügen Sie vitest/importMeta zu Ihrer tsconfig.json hinzu:

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

Ein vollständiges Beispiel finden Sie unter examples/in-source-test.

Hinweise ​

Diese Funktion kann nützlich sein für:

  • Unit-Tests kleiner Funktionen oder Dienstprogramme
  • Prototyping
  • Inline-Assertions

Es wird empfohlen, für komplexere Tests wie Komponenten- oder E2E-Tests stattdessen separate Testdateien zu verwenden.

Pager
Vorherige SeiteVitest UI
Nächste SeiteTest-Kontext

Veröffentlicht unter der MIT-Lizenz.

Copyright (c) 2021-Present Vitest Team

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

Veröffentlicht unter der MIT-Lizenz.

Copyright (c) 2021-Present Vitest Team