Donc, si je mets un console.log
dans un test
le console.log
apparaîtra après les tests, par exemple.
authentication.spec.js
register
✓ should be able to insert (128ms)
✓ should fail because of duplicate (100ms)
✓ should have user id assigned (1ms)
login
✓ should be able to login for correct user (117ms)
✓ should fail for incorrect user (14ms)
console.log tests/unit/authentication.spec.js:110
we can see a message
Ce que j'aimerais voir à la place, c'est quelque chose comme:
authentication.spec.js
register
✓ should be able to insert (128ms)
✓ should fail because of duplicate (100ms)
✓ should have user id assigned (1ms)
login
✓ should be able to login for correct user (117ms)
console.log tests/unit/authentication.spec.js:110
we can see a message
✓ should fail for incorrect user (14ms)
Alors le console.log
devrait apparaître avec ✓ should be able to login for correct user
dans ce cas
Lorsque j'utilisais Mocha, j'utilisais mocha-logger
Pour autant que je sache, ce n'est pas facilement possible, bien que quelques endroits pour chercher plus d'informations (pas prêts à l'emploi):
Jest permet d'utiliser des reporters personnalisés: https://jestjs.io/docs/en/configuration.html#reporters-array-modulename-modulename-options , afin que vous puissiez écrire votre propre reporter et afficher la sortie différemment. Pour le moment, bien que vous n'obteniez pas de mises à jour pour des tests séparés, juste des combinaisons de test, voici un problème créé par Dan Abramov: https://github.com/facebook/jest/issues/6616 .
Depuis le fil github ci-dessus - L'interface Reporter ressemble maintenant à:
export default class BaseReporter {
onRunStart(results: AggregatedResult, options: ReporterOnStartOptions) {}
// these are actually for the test suite, not individual test results
onTestStart(test: Test) {}
onTestResult(test: Test, testResult: TestResult, results: AggregatedResult) {}
onRunComplete(contexts: Set<Context>, results: AggregatedResult ): ?Promise<void> {}
}
Je n'ai pas trouvé de moyen prédéfini de passer les paramètres du test dans l'objet testResult
. Vous êtes donc principalement limité à la journalisation des informations en fonction des noms de test. Voici un exemple de propriété testResult
à l'intérieur de l'objet testResult
:
testResults:
[ { ancestorTitles: [Array],
duration: 5,
failureMessages: [],
fullName: 'add should add two numbers',
location: null,
numPassingAsserts: 0,
status: 'passed',
title: 'should add two numbers' } ],
Comme vous pouvez le voir, ce sont toutes les informations que le reporter standard utilise: nom du test, durée, statut. Pour référence, le reporter par défaut est ici: https://github.com/facebook/jest/blob/7b7fd01350/packages/jest-cli/src/reporters/default_reporter.js
Oui, vous pouvez le faire enregistrer. Vous devrez peut-être ajouter --verbose false
à package.json "test"
;
Ex: "scripts": { "test": "jest --watch --verbose false" }