J'utilise Jasmine (BDD Testing Framework pour JavaScript) dans mon module complémentaire Firefox pour tester la fonctionnalité de mon code.
Le problème est que jasmine génère les résultats des tests dans un fichier HTML, ce dont j'ai besoin est de Firebug Console ou d'une autre solution pour produire les résultats.
Avez-vous essayé le ConsoleRepoter
jasmine.getEnv().addReporter(new jasmine.ConsoleReporter(console.log));
Selon le code, Jasmine a la classe ConsoleReporter qui exécute une fonction d'impression (dans ce cas, console.log) qui devrait faire ce dont vous avez besoin.
Si tout le reste échoue, vous pouvez simplement l'utiliser comme point de départ pour implémenter votre propre reporter console.log.
Dans la plus récente version de Jasmine (2.0) si vous souhaitez obtenir une sortie de test sur la console, vous devez ajouter les lignes suivantes.
var ConsoleReporter = jasmineRequire.ConsoleReporter();
var options = {
timer: new jasmine.Timer,
print: function () {
console.log.apply(console,arguments)
}};
consoleReporter = new ConsoleReporter(options); // initialize ConsoleReporter
jasmine.getEnv().addReporter(consoleReporter); //add reporter to execution environment
La sortie en html est incluse par défaut cependant, donc si vous ne voulez pas du tout de sortie en html, vous devez éditer votre fichier boot.js et supprimer les lignes pertinentes à partir de là. Si vous souhaitez personnaliser l'affichage de la sortie dans la console, modifiez le fichier console.js. Source
jasmineRequire.ConsoleReporter n'existait pas dans la version 2.3.0, j'ai donc utilisé le code suivant:
//create a console.log reporter
var MyReporter = function(){jasmineRequire.JsApiReporter.apply(this,arguments);};
MyReporter.prototype = jasmineRequire.JsApiReporter.prototype;
MyReporter.prototype.constructor = MyReporter;
MyReporter.prototype.specDone=function(o){
o=o||{};
if(o.status!=="passed"){
console.warn("Failed:" + o.fullName + o.failedExpectations[0].message);
}
};
var env = jasmine.getEnv();
env.addReporter(new MyReporter());
Par souci d'exhaustivité, voici la configuration complète:
Exécutez tout d'abord le npm install
commande:
npm install jasmine-console-reporter --save-dev
Vérifiez ensuite votre configuration Jasmine pour vous assurer que vous disposez bien des paramètres des assistants:
spec/support/jasmine.json
{
"spec_dir": "spec",
"spec_files": [
"**/*[sS]pec.js"
],
"helpers": [
"helpers/**/*.js"
],
"stopSpecOnExpectationFailure": false,
"random": false
}
Étant donné que les assistants sont exécutés avant les spécifications, la seule chose que vous avez à faire est de créer une aide de reporter de console.
spec/helpers/reporter/consoleReporter.js
const JasmineConsoleReporter = require('jasmine-console-reporter');
let consoleReporter = new JasmineConsoleReporter({
colors: 1, // (0|false)|(1|true)|2
cleanStack: 1, // (0|false)|(1|true)|2|3
verbosity: 4, // (0|false)|1|2|(3|true)|4
listStyle: 'indent', // "flat"|"indent"
activity: false
});
jasmine.getEnv().addReporter(consoleReporter);