web-dev-qa-db-fra.com

Besoin d'un bon journaliste pour le karma jasmin

J'ai un fichier karma.config.js assez simple

basePath = '../';


files = [
  JASMINE,
  JASMINE_ADAPTER,
  'js/lib/angular*.js',
  'test/lib/angular/angular-mocks.js',
  'js/**/*.js',
  'test/unit/**/*.js'
];

autoWatch = true;
browsers = ['PhantomJS'];


Quand je lance karma start config/karma.conf.js --single-run j'obtiens le résultat suivant

$ karma start config/karma.conf.js --single-run
[2013-06-24 23:47:08.750] [DEBUG] config - autoWatch set to false, because of singleRun
INFO [karma]: Karma server started at http://localhost:9876/
INFO [launcher]: Starting browser PhantomJS
INFO [PhantomJS 1.9 (Mac)]: Connected on socket id LwMoWxzIbSUuBsvIqB_m
PhantomJS 1.9 (Mac): Executed 6 of 6 SUCCESS (0.073 secs / 0.02 secs)

Je cherche quelque chose pour me dire comment obtenir le résultat des tests enregistrés (par exemple SUCCESS Unit: services myService should behave)

Le seul moyen de voir le résultat des tests consiste à ouvrir Chrome, à cliquer sur "Déboguer", puis à afficher la console des outils de développement. Je veux que les messages soient déconnectés du terminal, mais je n'arrive pas à comprendre comment le faire fonctionner.

33
blockloop

Fixé en installant le karma-spec-reporter

npm install karma-spec-reporter --save-dev

et en ajoutant ceci mon karma.config.js 

reporters: ['spec'],

D'après la documentation sur le karma

Par défaut, Karma charge tous les modules NPM qui lui sont frères et leur nom correspond à karma- *.

mais certains utilisateurs ont dû ajouter ce qui suit à leur configuration

plugins: ['karma-spec-reporter']

69
blockloop

Vous pouvez également utiliser le Karma-mocha-reporter en tant que journaliste et vous devriez avoir un rapport vierge dans votre console. 

npm i karma-mocha-reporter --save-dev

// karma.conf.js
module.exports = function(config) {
  config.set({
    frameworks: ['jasmine'],

    // reporters configuration
    reporters: ['mocha']
  });
};

Parfois, par exemple dans un environnement @angular/cli, vous devriez exiger ceci comme: 

plugins: [
   ...
   require('karma-mocha-reporter'),
   ...
]
2
billyjov

Juste un autre détail - si vous gardez le reporter par défaut 'progress' dans le fichier karma.config.js, comme ci-dessous:

reporters: ["progress", "spec"]

ou un autre journaliste de console, la sortie de journaliste "spec" ne fonctionnera pas.

Vous ne devez conserver que le "spec", ou le "spec" avec les autres reporters du navigateur. Par exemple:

reporters: ["spec", "coverage"]
2
Fernando Ghisi

Voici ma configuration de travail (brouillon) sans la section 'plugins' (en fait, je ne comprends pas très bien pourquoi il faudrait que je les spécifie ...):

package.json 

  "devDependencies": {
    [...]
    "grunt-karma": "~0.9.0",
    "karma": "~0.12.24",
    "karma-jasmine": "~0.2.3",
    "karma-chrome-launcher": "~0.1.5",
    "karma-phantomjs-launcher": "~0.1.4",
    "karma-spec-reporter": "0.0.13"
  }

karma.conf.js

module.exports = function (config) {
    config.set({
        frameworks: ['jasmine'],
        reporters: ['spec'],
        browsers: ['PhantomJS']
    });
};

Gruntfile.js

    karma: {
        options: {
            configFile: 'karma.conf.js',
            files: [
                'app/libs/angular.js',
                'app/libs/angular-resource.js',
                'app/libs/angular-route.js',
                [...] 
                'app/modules/**/*-spec.js'
            ]
        },
        unit: {
            singleRun: true
        }
    }

Maintenant, lorsque j’exécute les messages grunt karma à partir des fichiers *-spec.js (describe('message', function() ...)), ils s'affichent correctement dans la console.

1
gvlax

J'ai écrit à un journaliste pour qu'il soit plus lisible: karma-utile-reporter

A quelques options de personnalisation de Nice: https://github.com/whyboris/karma-helpful-reporter

Installez les instructions à l'intérieur, essentiellement npm install --save-dev karma-helpful-reporter, puis ajoutez-les à la section des plugins de configuration Karma:

plugins: [ 
  require('karma-helpful-reporter')
],
reporters: [ 'helpful' ],
0
Boris Yakubchik