JavaScriptin console.log-tulosteen piilottaminen Jest-testeissä
Työskentelin tänään koodikannassa, jossa oli monia tarkoituksellisia console.log
tuloksia kaikissa ympäristöissä paitsi tuotannossa, joten ne näkyivät Jest-testituloksissa. Olisi ollut tylsää poistaa ne yksitellen, joten kehitin tämän yksinkertaisen asennuksen estääkseni kaiken console.log
lähdön kerralla Jestin ollessa käynnissä.
Konfigurointi On olemassa
Tämä temppu perustuu Jestin alkuperäiseen kykyyn pilkata mitä tahansa. Pohjimmiltaan teemme pilkkaa kohteen log
menetelmää console
ja jätämme muut menetelmät ennalleen.
Meidän on ensin kerrottava Jestiä suorittamaan asennustiedosto ennen testien suorittamista. Muokkaamme tätä varten jest.config.js
tiedostoa, joka on yleensä projektisi juuressa ja jossa on muita määritysominaisuuksia, ja lisäämme seuraavan rivin:
setupFilesAfterEnv: ['/src/jest.setup.js']
Voimme tarkistaa Jestin dokumentaatiosta, mitä se setupFilesAfterEnv
tekee:
Luettelo poluista moduuleille, jotka suorittavat jonkin koodin testauskehyksen määrittämiseksi tai määrittämiseksi ennen ohjelmistopaketin jokaisen testitiedoston suorittamista.
Nyt kun suoritamme testimme, ne suorittavat ensin sen jest.setup.js
, jonka luomme nyt.
Pilkkaaminen console.log
Luo tiedosto paikassa src/setup.js
tai missä osoitit polkusi edellisessä vaiheessa. Lisäät siihen sitten tämän:
global.console = {
log: jest.fn(),
debug: console.debug,
trace: console.trace,
}
Tämä ohittaa log
menetelmän ja sallii muut. Koska halusin silti pystyä tuottamaan jotain testeissä, kartoitin debug
ja trace
. Voit kartoittaa muita, joita saatat tarvita, kuten console.table
hahmontaa elementtejä taulukossa, hyödyllistä kirjata objekteja tai taulukoita. Ollakseni rehellinen, ennen kuin kirjoitin tämän, en ollut koskaan katsonut konsoliobjektisivua MDN:ssä, ja siellä on monia mielenkiintoisia menetelmiä, kuten se console.dir
, joka näyttää interaktiivisen luettelon määritetyn JavaScript – objektin ominaisuuksista.
Loppusanat
Nyt console.log
tuloste on estetty, kun Jest-testit suoritetaan. Jos työskentelet ryhmässä, varmista, että kerrot muulle tiimille tästä muutoksesta dokumentoimalla se, koska joku saattaa stressaantua yrittäessään console.log
jotain, mutta ei näe sitä siellä, missä sen pitäisi olla.