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

Reportery ​

Vitest udostępnia kilka wbudowanych reporterów do wyświetlania wyników testów w różnych formatach, a także umożliwia korzystanie z reporterów niestandardowych. Możesz wybrać reportery za pomocą opcji --reporter w wierszu poleceń lub dodając właściwość reporters do pliku konfiguracyjnego. Jeśli nie określisz reportera, Vitest użyje domyślnego reportera (default), opisanego poniżej.

Używanie reporterów za pomocą wiersza poleceń:

bash
npx vitest --reporter=verbose

Używanie reporterów za pomocą vitest.config.ts:

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

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

Niektóre reportery można konfigurować, przekazując dodatkowe opcje. Szczegółowe informacje o opcjach poszczególnych reporterów znajdziesz w dalszej części dokumentu.

TIP

Od Vitest v1.3.0

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

Zapisywanie Wyników Reportera ​

Domyślnie reportery Vitest wyświetlają wyniki w terminalu. Używając reporterów json, html lub junit, możesz zapisać wyniki testów do pliku, dodając opcję outputFile ([../config/#outputfile]) do pliku konfiguracyjnego Vite lub poprzez CLI.

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

Używanie Wielu Reporterów ​

Możesz używać wielu reporterów jednocześnie, aby wyświetlać wyniki testów w różnych formatach. Na przykład:

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

Ten przykład wyświetli wyniki testów w terminalu w domyślnym stylu oraz zapisze je w formacie JSON do określonego pliku.

Podczas korzystania z wielu reporterów można również określić różne pliki wyjściowe dla każdego z nich:

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

Ten przykład zapisze oddzielne raporty JSON i XML, a także wyświetli szczegółowy raport w terminalu.

Wbudowane Reportery ​

Domyślny Reporter ​

Domyślnie (jeśli nie określisz reportera), Vitest wyświetla wyniki każdego zestawu testów hierarchicznie w trakcie ich wykonywania, a po pomyślnym zakończeniu zestawu zwija jego szczegóły. Po zakończeniu wszystkich testów końcowy wynik w terminalu wyświetla podsumowanie wyników i szczegóły nieudanych testów.

Przykładowe wyniki dla testów w trakcie wykonywania:

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

Końcowe wyniki po zakończeniu testów:

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)

Podstawowy Reporter ​

Reporter basic wyświetla uruchomione pliki testowe oraz podsumowanie wyników po zakończeniu testów. Poszczególne testy nie są uwzględniane w raporcie, chyba że zakończą się niepowodzeniem.

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

Przykładowe wyniki przy użyciu podstawowego reportera:

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)

Szczegółowy Reporter ​

Reporter verbose podąża za tą samą strukturą hierarchiczną co reporter default, ale nie zwija podgrup dla pomyślnie zakończonych zestawów testów. Końcowy wynik w terminalu wyświetla wszystkie testy, które zostały uruchomione, w tym te, które zakończyły się pomyślnie.

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

Przykład końcowego wyniku w terminalu dla pomyślnie zakończonego zestawu testów:

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)

Kropkowy Reporter ​

Reporter dot wyświetla pojedynczą kropkę dla każdego zakończonego testu, zapewniając minimalne wyniki, a jednocześnie pokazując wszystkie uruchomione testy. Szczegóły wyświetlane są tylko dla testów, które zakończyły się niepowodzeniem. Dodatkowo wyświetlane jest podsumowanie reportera basic.

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

Przykładowe wyniki w terminalu dla pomyślnie zakończonego zestawu testów:

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 ​

Reporter junit wyświetla raport z wynikami testów w formacie JUnit XML. Może być wyświetlany w terminalu lub zapisywany do pliku XML za pomocą opcji outputFile.

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

Przykład raportu JUnit XML:

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>

Wygenerowany plik XML zawiera zagnieżdżone tagi testsuites i testcase. Możesz użyć zmiennych środowiskowych VITEST_JUNIT_SUITE_NAME i VITEST_JUNIT_CLASSNAME, aby skonfigurować odpowiednio atrybuty name i classname. Można je również dostosować za pomocą opcji reportera:

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

JSON Reporter ​

Reporter json wyświetla raport z wynikami testów w formacie JSON. Może być wyświetlany w terminalu lub zapisywany do pliku za pomocą opcji outputFile.

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

Przykład raportu JSON:

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 ​

Reporter html generuje plik HTML do przeglądania wyników testów za pomocą interaktywnego GUI. Po wygenerowaniu pliku Vitest uruchamia lokalny serwer deweloperski i udostępnia link do wyświetlenia raportu w przeglądarce.

Plik wyjściowy można określić za pomocą opcji outputFile. Jeśli nie podano opcji outputFile, zostanie utworzony nowy plik HTML.

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

TIP

Ten reporter wymaga zainstalowanego pakietu @vitest/ui.

TAP Reporter ​

Reporter tap wyświetla raport zgodny z Test Anything Protocol (TAP).

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

Przykład raportu TAP:

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 ​

Reporter tap-flat wyświetla płaski raport TAP. Podobnie jak w przypadku reportera tap, wyniki testów są formatowane zgodnie ze standardami TAP, ale zestawy testów są formatowane jako płaska lista, a nie zagnieżdżona hierarchia.

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

Przykład płaskiego raportu TAP:

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

Reporter Wykrywania Zawieszonych Procesów ​

Reporter hanging-process wyświetla listę wiszących procesów, jeśli jakiekolwiek blokują poprawne zakończenie działania Vitest. Sam w sobie nie wyświetla wyników testów, ale może być używany w połączeniu z innym reporterem do monitorowania procesów podczas uruchamiania testów. Używanie tego reportera może zużywać dużo zasobów, dlatego należy go na ogół rezerwować do celów debugowania w sytuacjach, gdy Vitest konsekwentnie nie może zakończyć procesu.

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

Github Actions Reporter 1.3.0+ ​

Reporter github-actions wykorzystuje polecenia workflow do dodawania adnotacji do testów, które zakończyły się niepowodzeniem. Ten reporter jest automatycznie włączany z reporterem default, gdy process.env.GITHUB_ACTIONS === 'true'.

Jeśli używasz niestandardowych reporterów, musisz ręcznie dodać github-actions.

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

Niestandardowe Reportery ​

Możesz użyć niestandardowych reporterów innych firm zainstalowanych z NPM, określając ich nazwę pakietu w opcji reporterów:

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

Możesz również zdefiniować własne niestandardowe reportery i używać ich, podając ścieżkę do pliku:

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

Niestandardowe reportery muszą implementować interfejs Reporter.

Pager
Poprzednia stronaFiltrowanie Testów
Następna stronaPokrycie kodu

Opublikowano na licencji MIT.

Copyright (c) 2024 Mithril Contributors

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

Opublikowano na licencji MIT.

Copyright (c) 2024 Mithril Contributors