web-dev-qa-db-fra.com

karma test runner rapport de test détaillé dans la console

Je viens de commencer avec le test unitaire de mon angular avec karma. Tout fonctionne comme prévu

Chrome 26.0 (Windows): exécuté 1 sur 1
Chrome 26.0 (Windows): exécuté 1 sur 1 SUCCÈS (0,878 seconde/0,112 seconde)

Cependant, existe-t-il un moyen de générer plus d'informations sur le résultat du test. Par exemple, la suite et les noms de test qu'il exécute et leur résultat. J'ai lu quelques tutoriels où le résultat du test Jasmine sort dans le navigateur. Je me demande si cela peut aussi être réalisé dans le karma.

43
Amitava

Je cherchais quelque chose de similaire, et j'ai trouvé cela: https://github.com/usrz/javascript-karma-verbose-reporter . Génère ce type de sortie:

$ karma start --reporters=verbose

Suites and tests results:

 - the app.router.config module :
   * contains a router property : ok
   * configures the router title : ok
   * should have a login route : ok
 - the organization module :
   * contains a state property : ok
   * should have a streams route after configuration : ok
   * when activated, should set state based on organization in route : ok
 - the streams module :
   * points to state : ok
   * loads organization streams upon activation : ok
   * loads organization streams via API : ok

Browser results:

 - PhantomJS 1.9.8 (Mac OS X 0.0.0): 9 tests
   - 9 ok

Pour en faire une option par défaut, vous pouvez l'ajouter à votre configuration de karma, par exemple:

reporters: ['verbose', 'junit']
17
Carles Barrobés

Je viens de terminer un journaliste HTML pour Karma, vous pouvez donc l'ajouter aux journalistes. Vous obtiendrez des informations supplémentaires comme dans la console mais vous pouvez aller avec "singleRun = true" dans votre configuration. Le plugin se trouve ici:

https://npmjs.org/package/karma-htmlfile-reporter

Après avoir installé le plugin via "npm install karma-htmlfile-reporter -g", il vous suffit d'ajouter quelques lignes à votre karma.conf.js:

reporters: ['progress', 'html'],

htmlReporter: {
  outputFile: 'tests/units.html'
},

plugins: [
  // ... your other plugins here
  'karma-htmlfile-reporter'
]

Maintenant, après avoir exécuté vos tests Karma, le plugin produira un fichier HTML de style que vous pouvez afficher dans votre navigateur.

15
Matthias

Comme l'a dit Ilja, je ne saurais pas quel type d'informations vous souhaiteriez des tests réussis. Vous pouvez cependant ouvrir la page de débogage si vous exécutez les tests dans un navigateur: Probablement à http://localhost:9876/debug.html. Tous les tests unitaires sont consignés sur la console.

9
DJ_HOEK

Je pense que cela Documention peut vous aider à configurer sa sortie dans la console.

Comme décrit:

reporters: ['progress', 'junit']
  • La "progression" concerne la sortie dans la console
  • Le "junit" est un plugin de karma pour la sortie dans des fichiers externes. :)
7
micfan

Suite à la réponse de @Carles Barrobés. La question initiale parlait des applications angular. J'ai donc pensé lister les étapes pour que cela fonctionne avec ng test

Installez le reporter détaillé:

npm install --save-dev karma-verbose-reporter

Mettez à jour votre fichier karma.conf.js pour inclure les éléments suivants:

module.exports = function (config) {
  config.set({
    plugins: [
      require('karma-verbose-reporter')
    ],
    reporters: ['verbose']
  });
};

Remarque, je n'ai inclus que les paramètres relatifs à la création de rapports, bien sûr, laissez vos autres paramètres dans le fichier de configuration tels quels.

Vous pouvez maintenant exécuter ng test pour obtenir une sortie détaillée

2
Ian Jamieson

J'ai ce que tu veux. Vous voulez un rapport détaillé dans la console elle-même.

Avec ' progress ', il ne s'imprime que "autant de succès sur ce point. Mais pas de rapport détaillé".

exemple: exécuté 1 sur 1 SUCCÈS (0,878 s/0,112 s)

reporters: ['progress']

Pour imprimer le rapport détaillé dans la console elle-même, utilisez le rapport "mocha" qui imprime l'exécution des détails dans la console comme le fait "kjhtml" dans broswer.

reporters: ['mocha']

mocha imprime dans la console elle-même, utilisé avec le navigateur phantomjs et chrome navigateur sans tête

Vous devez avoir un plugin pour le même. suivez lien pour la même chose

0
vipul patel