Skip to content
Vitest 1
Main Navigation LeitfadenAPIKonfigurationFortgeschritten
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

Leitfaden

Warum Vitest

Erste Schritte

Features

Arbeitsbereich

Kommandozeilenschnittstelle

Testfilter

Reporter

Codeabdeckung (Coverage)

Snapshot

Mocking

Typen testen

Vitest UI

Browser-Modus

In-Source-Testing

Testkontext

Testumgebung

Erweiterung von Matchern

IDE-Integration

Debugging

Vergleiche mit anderen Test-Runnern

Migrationsleitfaden

Häufige Fehler

Leistungsverbesserung

API

Test API Referenz

Mock-Funktionen

Vi

expect

expectTypeOf

assert

assertType

Konfiguration

Verwaltung der Vitest-Konfigurationsdatei

Vitest konfigurieren

Auf dieser Seite

Reporter ​

Vitest bietet verschiedene integrierte Reporter, um die Testergebnisse in unterschiedlichen Formaten anzuzeigen. Zusätzlich besteht die Möglichkeit, eigene Reporter zu verwenden. Sie können die gewünschten Reporter entweder über die Befehlszeilenoption --reporter auswählen oder eine reporters-Eigenschaft in Ihrer Konfigurationsdatei definieren. Wenn kein Reporter angegeben ist, verwendet Vitest den default-Reporter, der unten beschrieben wird.

Verwendung von Reportern über die Befehlszeile:

bash
npx vitest --reporter=verbose

Verwendung von Reportern über vitest.config.ts:

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

export default defineConfig({
  test: {
    reporters: ['verbose'],
  },
});

Einige Reporter können durch Übergabe zusätzlicher Optionen angepasst werden. Die spezifischen Optionen für die einzelnen Reporter werden in den folgenden Abschnitten beschrieben.

TIP

Verfügbar seit Vitest v1.3.0

ts
export default defineConfig({
  test: {
    reporters: ['default', ['junit', { suiteName: 'UI tests' }]],
  },
});

Ausgabe der Reporter ​

Standardmäßig erfolgt die Ausgabe der Vitest-Reporter im Terminal. Wenn Sie die Reporter json, html oder junit verwenden, können Sie die Ausgabe Ihrer Tests stattdessen in eine Datei schreiben, indem Sie die Konfigurationsoption outputFile entweder in Ihre Vite-Konfigurationsdatei oder über die Befehlszeile aufnehmen.

bash
npx vitest --reporter=json --outputFile=./test-output.json
ts
export default defineConfig({
  test: {
    reporters: ['json'],
    outputFile: './test-output.json',
  },
});

Kombination mehrerer Reporter ​

Sie können mehrere Reporter gleichzeitig verwenden, um Ihre Testergebnisse in verschiedenen Formaten auszugeben. Zum Beispiel:

bash
npx vitest --reporter=json --reporter=default
ts
export default defineConfig({
  test: {
    reporters: ['json', 'default'],
  },
  outputFile: './test-output.json',
});

Das obige Beispiel gibt die Testergebnisse im Standardstil im Terminal aus und schreibt sie zusätzlich als JSON in die angegebene Ausgabedatei.

Bei Verwendung mehrerer Reporter ist es auch möglich, für jeden Reporter eine separate Ausgabedatei anzugeben:

ts
export default defineConfig({
  reporters: ['junit', 'json', 'verbose'],
  outputFile: {
    junit: './junit-report.xml',
    json: './json-report.json',
  },
});

Dieses Beispiel schreibt separate JSON- und XML-Berichte und gibt zusätzlich einen ausführlichen Bericht im Terminal aus.

Integrierte Reporter ​

Standard-Reporter ​

Standardmäßig zeigt Vitest die Ergebnisse für jede Testsuite hierarchisch an, während die Tests ausgeführt werden. Nach dem Bestehen einer Suite werden die Ergebnisse ausgeblendet. Nach Abschluss aller Tests zeigt die abschließende Terminalausgabe eine Zusammenfassung der Ergebnisse sowie Details zu allen fehlgeschlagenen Tests an.

Beispielausgabe während der Testausführung:

bash
✓ __tests__/file1.test.ts (2) 725ms
✓ __tests__/file2.test.ts (5) 746ms
  ✓ second test file (2) 746ms
    ✓ 1 + 1 should equal 2
    ✓ 2 - 1 should equal 1

Abschließende Ausgabe nach Abschluss der Tests:

bash
✓ __tests__/file1.test.ts (2) 725ms
✓ __tests__/file2.test.ts (2) 746ms

 Test Files  2 passed (2)
      Tests  4 passed (4)
   Start at  12:34:32
   Duration  1.26s (transform 35ms, setup 1ms, collect 90ms, tests 1.47s, environment 0ms, prepare 267ms)

Basic Reporter ​

Der basic-Reporter zeigt die ausgeführten Testdateien und eine Zusammenfassung der Ergebnisse nach Abschluss aller Tests an. Einzelne Tests werden nur dann im Bericht aufgeführt, wenn sie fehlschlagen.

bash
npx vitest --reporter=basic
ts
export default defineConfig({
  test: {
    reporters: ['basic'],
  },
});

Beispielausgabe mit dem Basic Reporter:

bash
✓ __tests__/file1.test.ts (2) 725ms
✓ __tests__/file2.test.ts (2) 746ms

 Test Files  2 passed (2)
      Tests  4 passed (4)
   Start at  12:34:32
   Duration  1.26s (transform 35ms, setup 1ms, collect 90ms, tests 1.47s, environment 0ms, prepare 267ms)

Verbose Reporter ​

Dieser Reporter folgt der gleichen hierarchischen Struktur wie der default-Reporter, blendet jedoch keine Unterstrukturen für bestandene Testsuiten aus. Die abschließende Terminalausgabe zeigt alle ausgeführten Tests an, einschließlich der bestandenen.

bash
npx vitest --reporter=verbose
ts
export default defineConfig({
  test: {
    reporters: ['verbose'],
  },
});

Beispiel für die abschließende Terminalausgabe für eine bestandene Testsuite:

bash
✓ __tests__/file1.test.ts (2) 725ms
   ✓ first test file (2) 725ms
     ✓ 2 + 2 should equal 4
     ✓ 4 - 2 should equal 2
✓ __tests__/file2.test.ts (2) 746ms
  ✓ second test file (2) 746ms
    ✓ 1 + 1 should equal 2
    ✓ 2 - 1 should equal 1

 Test Files  2 passed (2)
      Tests  4 passed (4)
   Start at  12:34:32
   Duration  1.26s (transform 35ms, setup 1ms, collect 90ms, tests 1.47s, environment 0ms, prepare 267ms)

Punkt-Reporter ​

Dieser Reporter gibt für jeden abgeschlossenen Test einen einzelnen Punkt aus, um eine minimale Ausgabe zu erzielen und alle ausgeführten Tests anzuzeigen. Details werden nur für fehlgeschlagene Tests zusammen mit der basic-Reporterzusammenfassung für die Suite bereitgestellt.

bash
npx vitest --reporter=dot
ts
export default defineConfig({
  test: {
    reporters: ['dot'],
  },
});

Beispiel für die Terminalausgabe für eine bestandene Testsuite:

bash
....

 Test Files  2 passed (2)
      Tests  4 passed (4)
   Start at  12:34:32
   Duration  1.26s (transform 35ms, setup 1ms, collect 90ms, tests 1.47s, environment 0ms, prepare 267ms)

JUnit-Reporter ​

Dieser Reporter gibt die Testergebnisse im JUnit-XML-Format aus. Die Ausgabe kann entweder im Terminal erfolgen oder mit der Konfigurationsoption outputFile in eine XML-Datei geschrieben werden.

bash
npx vitest --reporter=junit
ts
export default defineConfig({
  test: {
    reporters: ['junit'],
  },
});

Beispiel für einen JUnit-XML-Bericht:

xml
<?xml version="1.0" encoding="UTF-8" ?>
<testsuites name="vitest tests" tests="2" failures="1" errors="0" time="0.503">
    <testsuite name="__tests__/test-file-1.test.ts" timestamp="2023-10-19T17:41:58.580Z" hostname="My-Computer.local" tests="2" failures="1" errors="0" skipped="0" time="0.013">
        <testcase classname="__tests__/test-file-1.test.ts" name="first test file &gt; 2 + 2 should equal 4" time="0.01">
            <failure message="expected 5 to be 4 // Object.is equality" type="AssertionError">
AssertionError: expected 5 to be 4 // Object.is equality
 ❯ __tests__/test-file-1.test.ts:20:28
            </failure>
        </testcase>
        <testcase classname="__tests__/test-file-1.test.ts" name="first test file &gt; 4 - 2 should equal 2" time="0">
        </testcase>
    </testsuite>
</testsuites>

Das ausgegebene XML enthält die verschachtelten Tags testsuites und testcase. Sie können die Umgebungsvariablen VITEST_JUNIT_SUITE_NAME und VITEST_JUNIT_CLASSNAME verwenden, um die Attribute name bzw. classname des testsuites- und testcase-Tags zu konfigurieren. Alternativ können diese auch über Reporteroptionen angepasst werden:

ts
export default defineConfig({
  test: {
    reporters: [
      [
        'junit',
        { suiteName: 'custom suite name', classname: 'custom-classname' },
      ],
    ],
  },
});

JSON-Reporter ​

Dieser Reporter gibt einen Bericht der Testergebnisse im JSON-Format aus. Die Ausgabe kann entweder im Terminal erfolgen oder mit der Konfigurationsoption outputFile in eine Datei geschrieben werden.

bash
npx vitest --reporter=json
ts
export default defineConfig({
  test: {
    reporters: ['json'],
  },
});

Beispiel für einen JSON-Bericht:

json
{
  "numTotalTestSuites": 1,
  "numPassedTestSuites": 0,
  "numFailedTestSuites": 1,
  "numPendingTestSuites": 0,
  "numTotalTests": 1,
  "numPassedTests": 0,
  "numFailedTests": 1,
  "numPendingTests": 0,
  "numTodoTests": 0,
  "startTime": 1697737019307,
  "success": false,
  "testResults": [
    {
      "assertionResults": [
        {
          "ancestorTitles": ["", "first test file"],
          "fullName": " first test file 2 + 2 should equal 4",
          "status": "failed",
          "title": "2 + 2 should equal 4",
          "duration": 9,
          "failureMessages": ["expected 5 to be 4 // Object.is equality"],
          "location": {
            "line": 20,
            "column": 28
          }
        }
      ],
      "startTime": 1697737019787,
      "endTime": 1697737019797,
      "status": "failed",
      "message": "",
      "name": "/root-directory/__tests__/test-file-1.test.ts"
    }
  ]
}

HTML-Reporter ​

Dieser Reporter generiert eine HTML-Datei, um Testergebnisse über eine interaktive GUI anzuzeigen. Nachdem die Datei generiert wurde, startet Vitest einen lokalen Entwicklungsserver und stellt einen Link zur Verfügung, um den Bericht in einem Browser anzuzeigen.

Die Ausgabedatei kann mit der Konfigurationsoption outputFile angegeben werden. Wenn keine outputFile-Option angegeben ist, wird eine neue HTML-Datei erstellt.

bash
npx vitest --reporter=html
ts
export default defineConfig({
  test: {
    reporters: ['html'],
  },
});

TIP

Dieser Reporter erfordert die Installation des Pakets @vitest/ui.

TAP-Reporter ​

Dieser Reporter gibt einen Bericht gemäß dem Test Anything Protocol (TAP) aus.

bash
npx vitest --reporter=tap
ts
export default defineConfig({
  test: {
    reporters: ['tap'],
  },
});

Beispiel für einen TAP-Bericht:

bash
TAP version 13
1..1
not ok 1 - __tests__/test-file-1.test.ts # time=14.00ms {
    1..1
    not ok 1 - first test file # time=13.00ms {
        1..2
        not ok 1 - 2 + 2 should equal 4 # time=11.00ms
            ---
            error:
                name: "AssertionError"
                message: "expected 5 to be 4 // Object.is equality"
            at: "/root-directory/__tests__/test-file-1.test.ts:20:28"
            actual: "5"
            expected: "4"
            ...
        ok 2 - 4 - 2 should equal 2 # time=1.00ms
    }
}

TAP-Flat-Reporter ​

Dieser Reporter gibt einen flachen TAP-Bericht aus. Wie beim tap-Reporter werden die Testergebnisse so formatiert, dass sie den TAP-Standards entsprechen, aber Testsuiten werden als flache Liste anstelle einer verschachtelten Hierarchie formatiert.

bash
npx vitest --reporter=tap-flat
ts
export default defineConfig({
  test: {
    reporters: ['tap-flat'],
  },
});

Beispiel für einen flachen TAP-Bericht:

bash
TAP version 13
1..2
not ok 1 - __tests__/test-file-1.test.ts > first test file > 2 + 2 should equal 4 # time=11.00ms
    ---
    error:
        name: "AssertionError"
        message: "expected 5 to be 4 // Object.is equality"
    at: "/root-directory/__tests__/test-file-1.test.ts:20:28"
    actual: "5"
    expected: "4"
    ...
ok 2 - __tests__/test-file-1.test.ts > first test file > 4 - 2 should equal 2 # time=0.00ms

Hanging-Process-Reporter ​

Dieser Reporter zeigt eine Liste der hängenden Prozesse an, falls diese verhindern, dass Vitest sicher beendet wird. Der hanging-process-Reporter zeigt selbst keine Testergebnisse an, kann aber in Verbindung mit einem anderen Reporter verwendet werden, um Prozesse während der Testausführung zu überwachen. Dieser Reporter kann ressourcenintensiv sein und sollte daher primär für Debugging-Zwecke verwendet werden, wenn Vitest Probleme beim Beenden des Prozesses hat.

bash
npx vitest --reporter=hanging-process
ts
export default defineConfig({
  test: {
    reporters: ['hanging-process'],
  },
});

Github Actions Reporter 1.3.0+ ​

Dieser Reporter nutzt Workflow-Befehle, um Testfehler in Form von Anmerkungen darzustellen. Dieser Reporter wird automatisch zusammen mit dem default-Reporter aktiviert, wenn process.env.GITHUB_ACTIONS === 'true'.

Wenn Sie nicht die Standardreporter konfigurieren, müssen Sie github-actions explizit hinzufügen.

ts
export default defineConfig({
  test: {
    reporters: process.env.GITHUB_ACTIONS ? ['dot', 'github-actions'] : ['dot'],
  },
});
Github ActionsGithub Actions

Eigene Reporter ​

Um eigene Reporter von Drittanbietern zu verwenden, die über NPM installiert wurden, geben Sie deren Paketnamen in der Option reporters an:

bash
npx vitest --reporter=some-published-vitest-reporter
ts
export default defineConfig({
  test: {
    reporters: ['some-published-vitest-reporter'],
  },
});

Zusätzlich können Sie Ihre eigenen benutzerdefinierten Reporter definieren und verwenden, indem Sie ihren Dateipfad angeben:

bash
npx vitest --reporter=./path/to/reporter.ts

Benutzerdefinierte Reporter sollten die Reporter-Schnittstelle implementieren.

Pager
Vorherige SeiteTestfilter
Nächste SeiteCodeabdeckung (Coverage)

Veröffentlicht unter der MIT-Lizenz.

Copyright (c) 2024 Mithril Contributors

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

Veröffentlicht unter der MIT-Lizenz.

Copyright (c) 2024 Mithril Contributors