Est-ce que Jest avale console.log
production?
// __tests__/log.test.js
it('logs', () => {
console.log('hey') // expect to see "hey" printed in terminal
})
// terminal output
$ jest --forceExit
PASS __tests__/log.test.js
✓ logs (1ms) # where's "hey"?
La principale raison pour laquelle je m'inquiète est que j'écris des trucs asynchrones beforeAll
et afterAll
, et je veux utiliser les instructions console.log pour déboguer l'ordre des événements.
Cela semble être un problème en cours .
Avec Node 10.7.0 et Jest 23.4.1, en ajoutant verbose: false
à la plaisanterie config ( par cette suggestion ) a fonctionné pour moi.
Modifier
Maintenant que je suis allé à Jest 23.6, je dois également passer TERM=dumb
comme variable d'environnement, selon la réponse de Tamlyn.
Le problème est que j'utilisais jest --forceExit
. Le modèle de journalisation de Jest enregistre tous les journaux et les recrache plus tard. --forceExit
provoque le processus de mise en liberté sous caution avant qu'il n'atteigne le point de sortie des journaux.
Mise à jour : ce problème devrait être corrigé à partir de Jest 24 .
Une autre solution partielle au bug actuel affectant les tests dans --watch
le mode est de passer TERM=dumb
comme variable d'environnement.
TERM=dumb jest --watch
Cela a un petit prix car il n'efface plus la console avant chaque test, vous devez donc faire défiler pour voir les résultats.