Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

Generator jest.config.js

Konfiguracja testów w Jest

Bezpieczne (SSL)
Przetwarzanie Lokalne
100% Darmowe
Instrukcja
  • 1
    Wprowadź dane
    Wpisz treść, wklej tekst lub załaduj plik z dysku.
  • 2
    Kliknij przycisk
    Narzędzie natychmiast przetworzy Twoje dane w przeglądarce.
  • 3
    Pobierz wynik
    Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
function runTool() {
  return "Wynik gotowy w 0.1s";
}
Ustaw opcje i wygeneruj plik jest.config.js.

Oceń to narzędzie:

Powiązane narzędzia

Inne narzędzia, które mogą Ci się przydać

Generator konfiguracji Jest

Jest to popularny framework testów JavaScript. Plik konfiguracyjny określa środowisko, katalogi testów, mapowanie modułów i raportowanie pokrycia.

Najważniejsze opcje

OpcjaZnaczenie
testEnvironmentnode (serwer) lub jsdom (przeglądarka)
rootskatalogi, w których szukać testów
moduleNameMappermapowanie aliasów importów
setupFilesAfterEnvpliki ładowane przed testami
collectCoveragezbieranie pokrycia kodu

Przykład

Dla aplikacji frontendowej ustaw testEnvironment: 'jsdom'. Alias @ zmapuj na katalog src, aby importy były krótsze w testach i kodzie.

Uruchamianie

  • npx jest — uruchom wszystkie testy.
  • npx jest --watch — tryb obserwacji.
  • npx jest --coverage — raport pokrycia.

Jak działa generator konfiguracji Jest

Generator zbiera wartości wpisane w formularzu i składa z nich gotowy plik jest.config.js. Każde pole odpowiada jednemu kluczowi obiektu konfiguracyjnego: wybór środowiska trafia do testEnvironment, lista katalogów do roots, pary aliasów do moduleNameMapper, ścieżki plików startowych do setupFilesAfterEnv, a przełącznik pokrycia do collectCoverage. Wynikiem jest moduł eksportujący obiekt — w wariancie CommonJS jako module.exports, w wariancie ESM jako export default.

Mechanizm jest prosty: puste pola są pomijane, więc w pliku znajdą się wyłącznie te klucze, które rzeczywiście wypełnisz. Pozostałe opcje zostają na wartościach domyślnych Jest, a to one decydują o większości zachowań frameworka. Kolejność kluczy w pliku nie ma znaczenia — Jest czyta obiekt, nie kolejność wierszy. Znaczenie ma natomiast typ wartości: ścieżki i wzorce to łańcuchy znaków, listy katalogów i plików to tablice, a mapowanie aliasów to obiekt klucz-wartość.

Konfiguracja z pliku działa jak warstwa bazowa. Flagi przekazane w wierszu poleceń mają nad nią pierwszeństwo, dlatego ten sam plik sprawdza się lokalnie i w potoku ciągłej integracji. Generator nie uruchamia testów, nie waliduje istnienia katalogów ani nie sprawdza wersji Jest w package.json — tworzy wyłącznie tekst pliku, który wklejasz do repozytorium.

Przykład krok po kroku

  1. Zakładasz projekt, w którym kod źródłowy leży w katalogu src, a testy mają rozszerzenie .test.js. W formularzu wybierasz środowisko jsdom, ponieważ testujesz komponenty korzystające z DOM.
  2. W polu katalogów głównych wpisujesz jedną ścieżkę: <rootDir>/src. Dzięki temu Jest nie przeszukuje node_modules ani katalogu z plikami po budowaniu.
  3. Dodajesz alias modułu: jako klucz wpisujesz ^@/(.*)$, jako wartość <rootDir>/src/$1. Import @/utils/date zacznie działać zamiast ścieżki względnej z serią ../.
  4. Wskazujesz plik startowy: <rootDir>/src/setupTests.js. Plik z tej listy ładuje się przed każdym zestawem testów, więc rozszerzenia matcherów są dostępne od pierwszego przypadku testowego.
  5. Włączasz zbieranie pokrycia i ustawiasz progi: branches 70, functions 80, lines 80, statements 80. To wartości procentowe wybrane przez Ciebie — jeśli pokrycie spadnie poniżej któregokolwiek progu, uruchomienie z flagą coverage zakończy się kodem błędu.
  6. Kopiujesz wygenerowany plik jest.config.js do katalogu głównego projektu, obok package.json, i uruchamiasz npx jest. Jest wczytuje konfigurację automatycznie, bez dodatkowych flag.

Tabela referencyjna pozostałych opcji

Klucz konfiguracjiPrzykładowa wartośćKiedy stosować
testMatch["**/__tests__/**/*.js", "**/?(*.)+(spec|test).js"]Gdy testy nie leżą w lokalizacjach domyślnych
transformseparator zależny od użytego presetGdy używasz TypeScriptu lub składni JSX
coverageThresholdglobal z progami lines, functions, branchesGdy chcesz wymuszać minimalne pokrycie w CI
testPathIgnorePatterns["/node_modules/", "/dist/"]Gdy katalog wynikowy zawiera skopiowane testy
moduleFileExtensions["js", "jsx", "ts", "tsx", "json"]Gdy importujesz pliki bez rozszerzenia
clearMockstrueGdy mocki mają być zerowane między testami
testTimeout10000Gdy pojedynczy test trwa dłużej niż domyślnie
reporterslista reporterów, np. domyślny plus raport XMLGdy system CI potrzebuje raportu w osobnym formacie

Praktyczne wskazówki

  • Trzymaj konfigurację w jednym miejscu — jeśli ustawienia trafiają także do sekcji jest w package.json, wybierz jedną z tych lokalizacji. Dwie konkurujące konfiguracje utrudniają diagnozę, gdy testy zachowują się inaczej niż oczekujesz.
  • Zacznij od minimum — środowisko i katalog główny wystarczą, żeby ruszyć z testami. Kolejne klucze dodawaj dopiero wtedy, gdy pojawi się realna potrzeba, bo każdy wpis trzeba później utrzymywać.
  • Używaj tokenu rootDir w ścieżkach — ścieżki zakotwiczone w katalogu projektu zachowują się przewidywalnie niezależnie od tego, z którego katalogu uruchomisz Jest.
  • Progi pokrycia ustawiaj ostrożnie — zbyt wysoki próg blokuje każdą gałąź, także tę z drobną poprawką. Lepiej zacząć od wartości osiągalnej i podnosić ją wraz z liczbą testów.
  • Powtórz aliasy poza Jest — mapowanie z moduleNameMapper musi znać także edytor i narzędzie budujące, inaczej zobaczysz podkreślony import, mimo że testy przechodzą.

Czego generator nie uwzględnia

  • Nie sprawdza, czy ścieżki istnieją — wygeneruje wpis dla katalogu lub pliku, którego nie ma w repozytorium. Błąd pojawi się dopiero przy uruchomieniu testów, często w mało czytelnym komunikacie.
  • Nie instaluje zależności — jeśli wybierzesz transformację przez preset TypeScriptu, pakiet i jego konfigurację dodajesz samodzielnie.
  • Nie zna Twojego bundlera — aliasy ustawione w konfiguracji Jest trzeba ręcznie powtórzyć w ustawieniach kompilatora lub narzędzia budującego, inaczej import zadziała w testach, ale nie w aplikacji.
  • Nie wykrywa konfliktów ani wersji — równolegle działająca konfiguracja w package.json nie jest sygnalizowana, a część kluczy zmieniała nazwy między wersjami Jest, co generator pomija.

Najczęstsze pytania

node czy jsdom?

Wybierz node dla kodu serwerowego i jsdom dla testów komponentów oraz kodu używającego DOM.

Po co setupFilesAfterEnv?

Ładuje rozszerzenia matcherów i globalne konfiguracje (np. testing-library) przed wykonaniem testów.

Jak testować TypeScript w Jest?

Użyj transformacji ts-jest lub babel-jest z presetem TypeScript. Konfigurację dodaje się w sekcji transform.

Czym jest plik jest.config.js?

To plik z obiektem konfiguracyjnym, który Jest wczytuje automatycznie przy starcie. Zapisuje się w nim środowisko testowe, katalogi z testami, mapowanie modułów i ustawienia pokrycia, dzięki czemu nie trzeba powtarzać tych flag w wierszu poleceń.

Jaka jest różnica między jest.config.js a sekcją jest w package.json?

Efekt działania jest taki sam, różni się tylko miejsce zapisu. Plik bywa wygodniejszy przy dłuższej konfiguracji i pozwala korzystać ze składni modułów, natomiast package.json trzyma wszystko w jednym miejscu. Nie ustawiaj obu naraz.

Jak ustawić aliasy importów w Jest?

Służy do tego moduleNameMapper. Podajesz wzorzec pasujący do importu jako klucz i docelową ścieżkę z tokenem rootDir oraz grupą przechwytującą jako wartość. Ten sam alias warto zdefiniować w konfiguracji kompilatora lub bundlera.

Dlaczego testy nie widzą plików z katalogu src?

Najczęściej brakuje wpisu w roots albo wzorzec w testMatch nie pasuje do nazw plików. Sprawdź też, czy w testPathIgnorePatterns nie znalazł się przypadkiem katalog z kodem źródłowym.

Jak wymusić minimalne pokrycie kodu w Jest?

Ustaw coverageThreshold i uruchamiaj testy z flagą coverage. Gdy wynik spadnie poniżej progu, proces zakończy się kodem błędu, co blokuje merge w systemie ciągłej integracji.

Zainstaluj Webp.pl Miej narzędzia we własnej kieszeni!