2016 med Jest
This page was AI-translated by PageTurner (beta). Not officially endorsed by the project. Found an error? Report issue →
2016 ble et stort år for JavaScript-testing med Jest. I de første seks månedene omskrev vi Jest og bygde et solid fundament for å forbedre ytelsen og utvikleropplevelsen ved testing av JavaScript-kode betydelig. Vi flow-typet hele kodebasen, bygde en masse integrasjonstester for Jest selv og tok i bruk lerna for å gjøre Jest om fra et rammeverk til en Painless JavaScript Testing-plattform.
Den nyutviklede react-test-renderer muliggjorde endelig testing av react-native-komponenter. Gjennom jest-react-native-forhåndsinnstillingen (nå integrert direkte i react-native) fungerer Jest nå umiddelbart for alle React-prosjekter og er forhåndskonfigurert i create-react-app og react-native-prosjekter. Vi integrerte kjernedeler av Jest i react-native sin pakker, og den helt nye snapshot-testing-funksjonen har siden blitt brukt utenfor Jest: Den ble integrert med React Storybook som "storyshots" og tas i bruk av andre testrammeverk som ava.
pretty-format-prosjektet ble omskrevet med fokus på ytelse for å drive Jests snapshot-funksjonalitet, ble nylig slått sammen med Jests monorepo og er også nyttig i andre testrammeverk. I dag handler Jest mye mer om å samle ulike ideer og løsninger for testing enn om én spesifikk implementering av et testrammeverk.
Jeg vil gjerne takke alle som har bidratt til Jest i år, både fra det åpne kildemiljøet og hos Facebook: Dmitrii Abramov, Cristian Carlesso, Dan Abramov, Daniel Lo Nigro, Maxim Derbin, Evan Scott, Forbes Lindesay, Keyan Zhang og 60 flere personer. Vi vil også ønske Michał Pierzchała (@thymikee) velkommen som første offisielle eksterne bidragsyter til Jest. Han har gjort en fantastisk jobb med å håndtere issues og PR-er i repositoriet. Hvis du ønsker å bidra til Jest, har vi en rekke gode førstegangsoppgaver og vi hjelper alltid gjerne til på vår discord-kanal.
repl.it med Jest-integrering
Amjad Massad utviklet en Jest-container slik at du nå kan teste Jest direkte i nettleseren. Du kan bruke dette når du oppretter GitHub-issues, noe som bør hjelpe til med raskere feilsøking. Amjad og Haya bygger repl.it for å demokratisere programmering ved å utvikle kraftige, men enkle verktøy og plattformer for lærere, studenter og utviklere. De søker også dyktige ingeniører!
Fellesskapsoppdatering
Vi er utrolig takknemlige for at over 100 selskaper har tatt i bruk Jest de siste seks månedene. Selskaper som Twitter, Pinterest, Paypal, nytimes, IBM (Watson), Spotify, eBay, SoundCloud, Intuit, FormidableLabs, Automattic, Trivago og Microsoft har enten fullstendig eller delvis byttet til Jest for sine JavaScript-testbehov. Tusen takk for at dere gir dette prosjektet en sjanse. Vi vil også takke alle som har snakket om Jest på konferanser og møter, og alle som skriver blogginnlegg om hvordan Jest fungerer eller ikke fungerer for dem!
Her er det som skjedde i fellesskapet de siste to månedene:
-
Jason Bonta og Dmitrii Abramov omdefinerte «testpyramiden» vi diskuterte mye om hos Facebook.
-
jest-codemods lar deg nå migrere problemfritt fra Mocha, Tape og Ava til Jest.
-
React-teamet kunngjorde forbedringer av react-test-renderer i versjon 15.4.0.
-
Orta Therox bygde en fantastisk vscode-jest-integrasjon og donerte koden for editor-støtte til Jest.
-
Pavithra Kodmad dokumenterer Flipkarts adopsjon av Jest og deler noen tips for å komme i gang.
-
Kent C. Dodds skrev om migrering til Jest hos Paypal og Jason Brown skrev også om migrering til Jest.
-
Ben McCormick skrev om å spare tid med Jest.
-
Eric Clemmons skrev om øyeblikksbilder og storybook-integrasjon.
-
Edvin Erikson skrev om å få Tap-utdata i Jest.
-
jest-html kan bringe diffing av øyeblikksbilder til nettleseren din.
-
Det var noen flotte diskusjoner om Jest på hackernews.
-
Fellesskapet startet en god diskusjon om fremtiden til enzyme.
-
Ruben Oostinga skrev om å kombinere chai- og Jest-matchers.
-
Emil Ong skrev om hvorfor «TDD på frontend virker meningsløst».
-
Nate Hunzaker skrev om end-to-end-testing med Jest og Nightmare.
-
Å bruke Jest med Angular fungerer rett og slett ifølge Matthieu Lux.
-
En fantastisk samtale om formålet med øyeblikksbildetesting pågår akkurat nå.
-
Dmitrii laget en ny musikkvideo med metalbandet sitt.
-
lazyspec kan hjelpe deg med å lage røyktester raskt hvis du innfører tester i en eksisterende kodebase.
-
Patrick Stapfer holdt et lynforedrag om vim og Jest.
-
Mark Dalgleish kommenterte nytteverdien av snapshot-testing.
Nye funksjoner, endringer og fikser i Jest 17 & 18
Jest ble opprinnelig laget for over fem år siden, og som et gammelt rammeverk har det samlet seg teknisk gjeld. Derfor gjør vi oftere bruddendringer enn det kan virke nødvendig: Vi mener det er viktig å gradvis redusere teknisk gjeld for å sikre at Jest som prosjekt forblir vedlikeholdbart på lang sikt. Vi kunngjorde ikke Jest 17 i et blogginnlegg, og hvis du ikke har oppgradert det den siste måneden, kan endringsloggen være nyttig.
-
Bruddendring: Fjernet
pittil fordel foritellertestogmockImpltil fordel forjest.fn()ellermockImplementation. -
Bruddendring: Endret
--jsonOutputFiletil--outputFile. -
Bruddendring: Oppdatert
testRegextil å inkluderetest.jsogspec.js-filer. -
Bruddendring: Erstattet
scriptPreprocessormed det nyetransform-alternativet. -
Bruddendring:
testResultsProcessor-funksjonen må nå returnere de modifiserte resultatene. -
Potensiell bruddendring: Løser nå
snapshotSerializers,setupFiles,transform,testRunnerogtestResultsProcessorkorrekt med en resolusjonsalgoritme i stedet forpath.resolve. Dette betyr hovedsakelig at<rootDir>ikke lenger trengs for disse alternativene. -
Lagt til:
pretty-formatogjest-editor-supportble slått sammen med Jest. -
Lagt til:
expect.any,expect.anything,expect.objectContaining,expect.arrayContaining,expect.stringMatching. -
Lagt til:
--testResultsProcessorer nå tilgjengelig via CLI. -
Lagt til: Implementert filovervåkning i
jest-haste-map. -
Lagt til: Bruk av Jest i overvåkingsmodus kan skjules med
JEST_HIDE_USAGE. -
Lagt til:
expect.assertions(number)som sikrer at et spesifisert antall påstander blir testet. -
Lagt til:
.toMatchSnapshot(?string)-funksjon for å navngi snapshots. -
Lagt til: Matchere
toMatchObject,toHaveProperty,toHaveLength. -
Lagt til:
expect.extend. -
Lagt til: Støtte for egendefinerte snapshot-serializere.
-
Lagt til: Store diff-er blir nå skjult som standard i snapshots og påstander. La til
--expand(eller-e) for å vise full diff. -
Lagt til:
jest.resetAllMockssom erstatterjest.clearAllMocks. -
Lagt til:
--jsoninkluderer nå informasjon om enkelttester i filer. -
Fikset: Ubehandlede promise-avvisninger i
test.concurrent. -
Fikset:
babel-plugin-jest-hoistved bruk avjest.mockmed tre argumenter. -
Fikset: Den globale
JSONijest-environment-nodehentes nå fra vm-konteksten istedenfor foreldrekonteksten. -
Fikset: Jest skriver ikke lenger stack traces fra babel.
-
Fikset: Falske timere nullstilles når
FakeTimers.useTimers()kalles. -
Fikset: Regulære uttrykk håndteres korrekt i snapshots.
-
Fikset: Forbedret pen utskrift av store objekter.
-
Fikset:
NaN% Failedi OS-varsling ved bruk av--notify. -
Fikset: Første testkjøring uten bufrede tidsmålinger bruker nå separate prosesser istedenfor å kjøre i band.
-
Fikset: Sammenligninger av
Map/Set. -
Fikset:
test.concurrentfungerer nå med--testNamePattern. -
Fikset: Forbedret
.toContain-matcher. -
Fikset: Moduler med plattformspesifikke filendelser løses nå korrekt i react-native.
-
Fikset: Globale innebygde objekter i
jest-environment-nodefungerer nå korrekt. -
Fikset: Mock-objekter opprettes nå i vm-konteksten istedenfor foreldrekonteksten.
-
Fikset:
.babelrcinkluderes nå i transformasjonsbuffer-nøkkelen ibabel-jest. -
Fikset: Dokblokk-parsing med haste-moduler.
-
Fikset: Avslutter med riktig kode når dekningsgradsterskelen ikke nås.
-
Fikset: Jest tømmer nå hele skrollebufferet i overvåkingsmodus.
-
Foreldet:
jest-react-nativeer nå foreldet og videresender tilreact-native.
Planer for Jest i første halvår 2017
For seks måneder siden deltok vi planene våre for Jest og vi er glade for at vi klarte å gjennomføre nesten alle. Her er planene våre for neste seks måneder:
-
Øyeblikkelig tilbakemelding: Nuclide-integrasjon og forbedret raskere overvåkingsmodus.
-
Forbedret utvikleropplevelse: nye mocke-APIer og forbedrede påstander.
-
Bedre ytelse og minnebruk: analyser Jest og vær mer bevisst på effektivitet.
-
Snapshot-forbedringer: godkjenningsmodus for snapshots, syntaksutheving og forbedrede
react-test-renderer-APIer. -
Nettsted: Vi skal oppdatere nettstedet og dokumentasjonen, samt legge til et Jest-sjefark.
Vi kommer ikke til å oppgi tidsplaner eller estimater for disse funksjonene, og vi kan faktisk ikke nå alle disse målene. Hvis du vil bidra til å realisere disse tingene, send oss problemer og pull-forespørsler med dine ideer – la oss sammen gjøre Jest bedre i 2017.
