web-dev-qa-db-fra.com

Comment publier les résultats des tests unitaires Jest dans les tests VSTS?

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.

12
Vishnu

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.

  1. Installer jest-trx-results-processor

    # NPM
    npm install jest-trx-results-processor --save-dev
    
    # Yarn
    yarn add -D jest-trx-results-processor
    
  2. 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;
    
  3. 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"
    }
    
  4. Ajouter npmtâche à la génération VSTS pour npm test. Cela exécutera des tests de plaisanterie et publiera les résultats sur jestTestresults.trx

  5. Ajouter Publish Test Resultstâche de VSTS pour ajouter jestTestresults.trx résultats du test VSTS.

Vous pourrez voir les tests JEST avec d'autres tests.

8
Vishnu

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) :

  1. Ajouter jest-junit à package.json

    Par exemple yarn add -D jest-junit ou npm add --save-dev jest-junit

  2. 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.

  3. 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

Publish Test Results task

  1. (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:

Publish Code Coverage Results task

22
crimbo