Hopp til hovedinnhold

🃏 Jest 19: Immersiv overvåkningsmodus og forbedringer av testplattformen

· 8 min å lese
Rogelio Guzman
Rogelio Guzman
Unofficial Beta Translation

This page was AI-translated by PageTurner (beta). Not officially endorsed by the project. Found an error? Report issue →

I dag er vi glade for å lansere versjon 19 av Jest-testplattformen. Dette er den største Jest-utgivelsen hittil, og vi gleder oss til å vise frem det vi har bygd de siste to månedene:

Immersiv overvåkningsmodus

Vi omskrev fullstendig overvåkningsmodusen for å gjøre den umiddelbar og mer utvidbar. Resultatet er en virkelig oppslukende brukeropplevelse: tester kjøres omgående etter filendringer, og vi har gjort det enkelt å velge riktige tester.

Snapshot-oppdateringer

Vi gjorde noen endringer i snapshot-formatet. Vi gjør ikke slike endringer ofte, og vurderer dem kun hvis de faktisk forbedrer hvordan snapshots fungerer. I tillegg til å introdusere et versjonsnummer for snapshots, har vi samlet flere forbedringer vi lenge har ønsket å gjøre:

  • Vi fjernet "test"-prefikset i snapshot-navn fra toppnivå test- eller it-kall.

  • Vi forbedret utskriften av React-elementer for å redusere endringer når den siste propen i et element endres.

  • Vi forbedret tegn-escape-mekanismen for å gjøre den mer skuddsikker.

Før:

exports[`test snap 1`] = `
<header>
<h1>
Jest \"19\"
</h1>
<Subtitle
name="Painless JavaScript Testing" />
</header>
`;

Etter (uten "test"-prefiks, bedre JSX-gjengivelse, versjonsheader):

// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`snap 1`] = `
<header>
<h1>
Jest "19"
</h1>
<Subtitle
name="Painless JavaScript Testing"
/>
</header>
`;

Vi mente det var rett tidspunkt for å introdusere versjonerte snapshots for å sikre at alle utviklere bruker en kompatibel Jest-versjon. Slik varsler vi deg om behovet for å oppdatere snapshots:

snapshot-version

Sørg for å tilbakestille lokale endringer før oppdatering for en smidig overgang, og for å unngå uønskede endringer fra feilede tester i nye snapshots.

Forbedret utskrift av hopp-over-tester

Hopp-over-tester vises nå som én enkelt linje i verbose-modus eller ved testing av en enkelt test-suite. Dette lar deg fokusere på gjeldende viktige tester og sparer plass.

skipped-tests

Nye CLI-argumenter

Jest 19 leveres med to nye dekning-relaterte CLI-argumenter:

  • --collectCoverageFrom

  • --coverageDirectory

Vi gir nå feilmeldinger ved ugyldige CLI-argumenter i stedet for å ignorere dem. Men vi har din rygg med hjelpsomme feilmeldinger som denne når du prøver jest --watc:

cli-error

expect-forbedringer

Vi nærmer oss full funksjonalitet med expect-npm-pakken. Michael Jackson, pakkens skaper, har sagt seg villig til å donere den til Jest-prosjektet. Dette betyr at jest-matchers vil bli omdøpt til expect. Siden vår expect ikke er fullstendig kompatibel, jobber Christopher Chedeau med en codemod for smertefri migrering. Christopher har også forbedret jest-matchers for bruk utenfor Jest, til og med i nettlesere.

eslint-plugin-jest – vår egen ESLint-pluggin

Takket være Jonathan Kim har Jest endelig fått sitt eget offisielle ESLint-plugin. Det tilbyr tre regler:

Installer med npm install --save-dev eslint-plugin-jest eller yarn add --dev eslint eslint-plugin-jest. Aktiver ved å legge til {"plugins": ["jest"]} i eslint-konfigurasjonen.

Ny offentlig pakke: jest-validate

Da vi omstrukturerte validerings- og normaliseringskoden for Jests konfigurasjon, var vi så fornøyde med de nye feilmeldingene at vi ekstraherte dem til et eget modul for å dele det med alle. Med Jest 19 ønsker vi velkommen til jest-validate i vår familie av selvstendige pakker.

jest-validate er et verktøy for konfigurasjonsvalidering som hjelper deg med advarsler, feil og utdateringsmeldinger i JavaScript-verktøy. Den viser brukere brukervennlige eksempler på korrekt konfigurasjon og kommer med et enkelt men kraftig API. Vi håper den blir et godt tillegg til prosjektene dine!

validering

Vi er glade for å kunne meddele at jest-validate har validert konfigurasjonsvalg for prettier siden v0.12. Prøv den gjerne i ditt prosjekt, gi oss tilbakemeldinger og forbedre den via pull requests på GitHub.

Forbedrede asymmetriske matchere

Vi flyttet implementasjonen av asymmetriske matchere fra Jasmine til Jest, noe som muliggjorde ytterligere forbedringer i brukeropplevelsen. Resultatet er pen formatering av asymmetriske matchere, tillegg av den nye expect.stringContaining()-matcheren og integrasjon med expect.toMatchObject() for å kombinere det beste fra begge:

asymmetriske-matchere

Bedre manuelle mocks

Med denne oppdateringen fungerer manuelle mocks endelig med nestede mapper. For eksempel vil __mocks__/react-native/Libraries/Text/Text.js nå mocke riktig modul som forventet. Vi fikset også problemer med virtuelle mocks og transitive avhengigheter, og forbedret moduleNameMapper for å unngå å overskrive mocks når flere mapper til samme fil.

Brytende endringer

Som del av vår opprydding fjernet vi mocksPattern-konfigurasjonsvalget som aldri var offisielt støttet. Vi endret også navnet på testPathDirs til roots for bedre å beskrive funksjonaliteten. Standardverdien for roots er ["<rootDir>"] og kan tilpasses for å inkludere flere kataloger. rootDir har primært vært brukt som referanse i andre konfigurasjonsvalg, og denne endringen gjør konfigurering tydeligere.

Oppfrisket dokumentasjon

Som du kanskje allerede har sett, ga Hector Ramos og Kevin Lacker Jests dokumentasjon et nytt utseende. Vi endret organiseringen av nettsiden og har nå egne sider for Dokumentasjon og API:

Hjemmesiden er helt redesignet for bedre å formidle hva Jest handler om: «Zero configuration testing platform». Vi har også sørget for bedre lesbarhet på mobile enheter. Og for RSS-brukere – vi tilbyr nå en feed for bloggen vår.

Oppdateringer fra fellesskapet

Til slutt er vi glade for å kunngjøre at ava-testkjøren har adoptert deler av Jest-plattformen og leverer nå grunnleggende snapshot-støtte samt bruker pretty-format. Konsolidering av testinfrastruktur gjør testing mer tilgjengelig og lar oss dele beste praksis. Vi gleder oss til å lære mer fra eksisterende testverktøy fremover.

Den fullstendige endringsloggen finner du på GitHub. Jest 19 var et ekte JavaScript-fellesskapsprosjekt med 17 bidragsytere til denne utgivelsen. Vi takker hver enkelt av dere for deres hjelp til å gjøre dette prosjektet fantastisk.

Denne bloggposten ble skrevet av Rogelio Guzman og Michał Pierzchała.