Jest 16.0: Turbocharged CLI og samfunnsoppdatering
This page was AI-translated by PageTurner (beta). Not officially endorsed by the project. Found an error? Report issue →
Det har gått én måned siden siste større utgivelse, og vi har gjort betydelige forbedringer i Jest siden den gang. I denne større utgivelsen oppdaterer vi snapshot-formatet vårt, noe som sannsynligvis vil kreve at snapshots oppdateres når du oppgraderer Jest. Vi gjør ikke disse endringene uten videre og forventer ikke at dette skjer ofte, men vi mener det er nødvendig å forbedre formatet fra tid til annen.
Oppgradert CLI

Jest 16 har et nytt rapporteringsgrensesnitt som viser kjørende tester samt en live-sammendrag og en fremdriftsindikator basert på estimert kjøretid fra tidligere testkjøringer. Vi har også forbedret CLI-utdataene for å fungere bedre med ulike fargeoppsett. Dersom det var testfeil i en tidligere kjøring, vil Jest nå alltid kjøre disse testene først for å gi brukerne nyttige signaler så raskt som mulig.
Vi har også lagt til mange nye funksjoner du kan finne nyttige:
-
Nye CLI-flagg er lagt til: En
--testNamePattern=patterneller-t <pattern>-valgmulighet ble lagt til for å filtrere tester fra kommandolinjen, liknende somit.onlyellerfitgjør i tester. -
Tidligere mislykkede tester kjøres nå alltid først.
-
jest <pattern>er nå store og små bokstaver ufølsom for å gjøre det enklere å filtrere testfiler. -
En testkjøring i overvåkingsmodus kan nå avbrytes. Under en testkjøring kan du trykke på en av tastene som brukes for input i overvåkingsmodus (
a,o,p,qellerenter) for å avbryte testkjøringen og starte en ny. -
--bail-flagget fungerer nå også i overvåkingsmodus. Sammen med at mislykkede tester kjøres først, vil Jest's overvåkingsmodus føles turbocharged! -
Jest tar nå automatisk hensyn til filer og tester med
jsx-filetternavn. -
Jest advarer mot duplikate manuelle mock-filer, og vi forbedret automatisk opprettede mocks for ES-moduler kompilert med babel.
-
En
jest.clearAllMocks-funksjon ble lagt til for å fjerne alle mocks mellom tester. -
Vi forbedret moduloppløsning når
moduleNameMapperbrukes. -
Til slutt ble en
--findRelatedTests <fileA> <fileB>CLI-valgmulighet lagt til for å kjøre tester relatert til spesifiserte filer. Dette er spesielt nyttig som en pre-commit-hook hvis du ønsker å kjøre tester kun på et spesifisert sett med filer som har tilhørende tester.
Slik ser Jest ut når en testkjøring avbrytes i overvåkingsmodus: 
Snapshot-oppdateringer
Jest's snapshot-implementering ble fullstendig omskrevet. Den nye versjonen av jest-snapshot-pakken er nå strukturert på en måte som gjør enklere integrasjon med andre testkjøringsmotorer mulig, og muliggjør flere kule integrasjoner som med React Storybook. Jest markerer ikke snapshots som foreldede i en fil med hopp over eller mislykkede tester. Vi gjorde også en rekke endringer i snapshot-formatet:
-
Objekter og arrays skrives nå med et avsluttende komma for å minimere fremtidige endringer i snapshots.
-
Vi fjernet funksjonsnavn fra snapshots. De forårsaket problemer med ulike versjoner av Node, med kodedekningsinstrumentering, og vi følte generelt at det ikke var nyttig å vise brukeren at et funksjonsnavn har endret seg.
-
Snapshots sorteres nå med naturlig sorteringsrekkefølge innenfor en fil.
Når du oppgraderer til Jest 16, kan diffen se omtrent slik ut: 
Testbibliotekoppdateringer
Vi har fullført migreringen av Jasmine-assertioner til de nye Jest-matcherne. Vi har lagt til tre nye matchere: toBeInstanceOf, toContainEqual og toThrowErrorMatchingSnapshot. Vi har mer lesbare feilmeldinger for spion-/mock-matcherne toHaveBeenLastCalledWith, toHaveBeenCalledWith, lastCalledWith og toBeCalledWith. Nå som vi har omskrevet alle assertionene og skilt dem ut i sin egen pakke, vil vi jobbe med å gjøre dem uavhengige slik at de kan integreres i ethvert testrammeverk hvis du ønsker å bruke dem utenfor Jest.
Vi har også lagt til en rekke alias som ble forespurt av fellesskapet. For å få Jest til å fokusere på en enkelt test kan du nå bruke enten it.only eller test.only, eller fortsette å bruke fit. For å hoppe over en test er nå it.skip eller test.skip tilgjengelige sammen med xit. Til slutt kan du bruke test.concurrent for å definere en test som samtidig, noe som er nyttig hvis testen din aksesserer nettverksressurser eller databaser.
Til slutt, hvis du ønsker å overskrive det globale expect med et annet assertion-bibliotek som chai, kan dette nå gjøres via konfigurasjonsalternativet setupTestFrameworkScriptFile.
Fellesskapsoppdatering
I løpet av den siste måneden er det skrevet mange artikler om Jest's snapshot-testingsfunksjon, hvordan migrere til Jest og hvordan komme i gang med å skrive tester. Jeg har også laget noen live-videoer for å forklare hvordan Jest og snapshot-testing fungerer:
Flere personer har skrevet artikler om snapshot testing. Den mest meningsfylte artikkelen som resonerte med Jest-teamet var "Testing with Jest Snapshots: First Impressions". Ben kommer med tre gode poenger i blogginnlegget sitt:
-
Snapshot-tester er et supplement til konvensjonelle tester, ikke en erstatning.
-
Snapshot-tester er mer nyttige med en sunn kodegjennomgangsprosess.
-
Snapshot-tester fungerer bra med automocking.
Vi anbefaler på det sterkeste å lese hele blogginnlegget. Ben gjorde en fantastisk jobb med å forklare grunnene til at vi bygde snapshot testing. Det er viktig å påpeke at vi ikke introduserte snapshot testing for å erstatte alle andre testformer, men heller som en måte å gjøre det mulig for utviklere å skrive tester for kode de ellers ikke ville testet. Det fungerer bra for ting som React-komponenter, CLI-output, feilmeldinger og mange andre, men det løser ikke alle problemer. Jest's mål er å tilby mange ulike måter å skrive effektive tester på uten å ofre ytelse eller prosjektets vedlikeholdbarhet.
Andre høydepunkter om snapshot testing:
-
En React Native-testeserie: Del 1: Jest – Snapshot kommer inn i bildet og Del 2: Jest – Redux Snapshots for Actions og Reducers.
-
Hvordan vi endte opp med Jest snapshot testing for JavaScript.
-
Hvis du bruker det populære testverktøyet enzyme, finnes det nå et prosjekt kalt enzyme-to-json som gjør det mulig å bruke Jest's snapshot-testing sammen med enzyme.
Redux bruker nå Jest og Max Stoiber har skrevet en tutorial om testing av Redux-kode. Det finnes også en flott guide om testing av MobX. Hvis du bruker create-react-app, er Jest nå inkludert som standard. Kent C. Dodds har laget en rekke videoer på egghead.io som hjelper deg å komme i gang med Jest.
Hvis du bruker andre testrammeverk, har Kenneth Skovhus bygget det fantastiske jest-codemods-biblioteket som automatiserer konverteringen for deg. Codemods er fantastiske: de lar deg raskt vurdere om Jest passer for dine behov. Prøv det!
Fullstendig endringslogg finnes på GitHub. Jest 16 var et ekte JavaScript-fellesskapsprosjekt med nå over 220 bidragsytere. Vi takker hver enkelt av dere for deres hjelp til å gjøre dette prosjektet fantastisk.
