J'ai trouvé quelques questions sur SO spécifiques à la version pour le test unitaire de plaisanterie pour publier son résultat dans l'onglet Résultats de test de build VSTS. Mais aucune solution appropriée n'est trouvée.
Je suis allé jeter des paquets npm jest comme tap-xunit
et jest-json-to-tap
mais je n'ai pas réussi à le comprendre. Les étapes suivantes ont fonctionné pour moi pour obtenir les résultats à examiner sous Test de VSTS build.
Installer jest-trx-results-processor
# NPM
npm install jest-trx-results-processor --save-dev
# Yarn
yarn add -D jest-trx-results-processor
Créer jestTrxProcessor.js
fichier avec le contenu suivant:
var builder = require('jest-trx-results-processor');
var processor = builder({
outputFile: 'jestTestresults.trx'
});
module.exports = processor;
Mis à jour package.json
le fichier devrait ressembler à:
"devDependencies": {
"jest": "^23.4.1",
"jest-trx-results-processor": "0.0.7",
"jsdom": "^11.12.0",
...
},
"scripts": {
"test": "jest"
},
"jest": {
...,
"testResultsProcessor": "./jestTrxProcessor.js"
}
Ajouter npm
tâche à la génération VSTS pour npm test
. Cela exécutera des tests de plaisanterie et publiera les résultats sur jestTestresults.trx
Publish Test Results
tâche de VSTS pour ajouter jestTestresults.trx
résultats du test VSTS.Vous pourrez voir les tests JEST avec d'autres tests.
J'ai utilisé une approche différente, b/c après quelques recherches, j'ai trouvé que la propriété Jest testResultsProcessor est obsolète . J'utilise le package jest-junit pour les rapports de test (qui a été travaillé plus récemment que le processeur jest-trx-results-fwiw) :
Ajouter jest-junit à package.json
Par exemple yarn add -D jest-junit
ou npm add --save-dev jest-junit
Ajouter une tâche VSTS pour exécuter Jest à l'aide du reporter de résultats jest-junit
J'ai utilisé la tâche Yarn , mais vous pouvez également utiliser la tâche npm . J'ai utilisé ces arguments de tâche:
jest --ci --reporters=jest-junit --reporters=default --coverage --coverageReporters=cobertura --coverageReporters=html
parce que je voulais aussi une couverture de code. Pour ignorer les rapports de couverture de code, utilisez ces arguments de tâche (npm ou fil):
jest --ci --reporters=jest-junit --reporters=default
Notez que --reporters=default
y a-t-il b/c je voulais la sortie standard par défaut dans mon journal de build.
Ajouter une tâche de publication des résultats de test
Puisque nous utilisons le chemin par défaut, le fichier des résultats du test sera écrit dans ~/junit.xml
(Facultatif) Ajoutez également publier la tâche de couverture du code , aussi
Si vous exécutez une couverture de code, vous pouvez également ajouter une tâche pour publier les résultats de la couverture de code: