🃏 Jest 19: Immersiv overvåkningsmodus og forbedringer av testplattformen
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- ellerit-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:

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.

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:

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:
-
no-disabled-tests - hindrer utilsiktet innsending av deaktiverte tester.
-
no-focused-tests - forhindrer innsending av fokuserte tester som deaktiverer alle andre tester i samme testgruppe.
-
no-identical-title - forbyr identiske titler i testnavn.
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!

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:

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:
-
Under Dokumentasjon finner du en introduksjon til Jest, inkludert Komme i gang eller Testing av asynkron kode og nyttige guider som Snapshot-testing, Testing av React Native-applikasjoner, Bruk med webpack eller Migrering til Jest og mange flere!
-
API-delen viser på sin side alle tilgjengelige metoder som Jest tilbyr:
expect- ogjest-objektene, mock-funksjoner, globale verktøy, sammen med konfigurasjonsalternativer fra package.json og CLI.
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
-
Vi elsket denne presentasjonen: «Introduksjon til Jest» av Vas Boroviak.
-
Følg @jestjs_ på Twitter.
-
Jest-kjerne-teamet møtes ukentlig for å diskutere aktuelle og fremtidige utfordringer. Ønsker du å bidra til Jest? Gi oss beskjed, send inn noen pull requests og bli med på våre ukentlige teammøter.
-
De fantastiske ingeniørene hos Artsy skrev om Jest som del av deres frontend-stack for 2017.
-
Stephen Scott skrev en grundig artikkel om testing av React-komponenter der han veier fordeler og ulemper ved ulike tilnærminger.
-
Bruke Jest med vue.js ble mye enklere etter å ha lest Cristian Carlessos blogginnlegg.
-
Michele Bertoli skrev en bok om React Design Patterns and Best Practices med et helt kapittel om Jest.
-
Forbedret
--notify-kommando som viser systemvarsler og kan nå også re-kjøre tester direkte fra varselet. Dette er en ekte Jest-funksjon – vi sjekker bare om du fortsatt leser blogginnlegget. -
Jest er nå en del av react-boilerplate.
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.
