Je suis nouveau sur Karma, mais je me demande comment afficher sa sortie dans un navigateur (un peu comme la façon dont on interagit avec Jasmine, lorsqu'un fichier runner.html est présent).
J'ai regardé le screencast d'introduction et je comprends comment afficher les sorties de test dans une fenêtre de console, mais dans mon navigateur, je n'ai presque pas de contenu pour Karma sauf
Karma - connecté
S'il vous plaît donnez votre avis! Je voudrais éviter d'avoir à maintenir un fichier runner.html séparé, car le fichier de configuration de Karma m'oblige déjà à inclure tous les liens de script nécessaires.
AFAIK, les deux réponses précédentes sont correctes en ce que vous voudrez exécuter les tests dans un navigateur; cliquez sur DEBUG et affichez la sortie dans la console.
En contredit poliment à la réponse précédente, je le fais régulièrement et j'effectue un débogage avec une interaction variable complète en utilisant Karma.
La bonne réponse à votre question, car ce que vous voulez, c'est une sortie assez HTML, est "non". Cependant, ce plugin pour le karma peut vous donner les résultats que vous désirez.
Vous devez l'exécuter avec singleRun = false
dans karma.conf.js
puis cliquez sur le bouton dans le coin supérieur qui dit "DEBUG". Ensuite, vous devriez voir la sortie et elle ne disparaîtra ni ne se fermera. Vous pourrez également utiliser la console pour déboguer.
Il convient de noter que le débogage des tests e2e n'est pas aussi simple car ils sont basés sur le "futur", vous ne pourrez donc pas intercepter des valeurs (afaik).
Salut Dans mon cas, j'ai résolu ce problème en installant karma-jasmine-html-reporter
et le mettre dans le tableau des journalistes.
npm i -D karma-jasmine-html-reporter
client:{clearContext:false}
var gulpConfig = require('./build/build.conf')();
module.exports = function (config) {
config.set({
browsers: ['Chrome'],
basePath: './',
plugins: [
// all other plugins
'karma-jasmine-html-reporter'
],
colors: true,
client: {
clearContext: false // will show the results in browser once all the testcases are loaded
},
frameworks: ['jasmine', 'jasmine-sinon', 'sinon'],
files: [].concat(
gulpConfig.deps.lib,
'js/**/*mother*.js',
'js/**/*mother.*.js',
'js/**/*.tests.js'
),
logLevel: config.LOG_INFO,
reporters: ['kjhtml', 'progress', 'coverage'],
});
};
Je voulais afficher HTML5 Web Notifications avec Karma, j'ai donc écrit quelque chose de rapide pour le faire fonctionner avec Karma version 0.11. Peut se comporter légèrement différemment avec d'autres versions. Je charge ce script avec le reste de mes scripts d'application, il stockera les résultats du test de karma et une fois terminé, il déterminera le succès du test, puis rétablira les fonctions de karma d'origine afin qu'elles ne soient pas modifiées lors de l'exécution de ce script encore.
// store all my test results
var results = [];
// Wrap the karma result function
var resultFunc = window.__karma__.result;
window.__karma__.result = function(result){
// run the original function
resultFunc(result);
// Push each result on my storage array
results.Push(result);
}
// wrap the karma complete function
var completeFunc = window.__karma__.complete;
window.__karma__.complete = function(result){
// run the original function
completeFunc(result);
// determine success
var success = results.every(function(r){ return r.success });
if (success) {
// display a success notification
}
else {
// display a test failure notification
}
// reset the result function
window.__karma__.result = resultFunc;
// reset the complete function
window.__karma__.complete = completeFunc;
}
Une option consiste à ouvrir la console Javascript dans votre navigateur. Karma crée une entrée de journal pour chaque test, y compris le résultat.