w3schools tag tab page change javascript firefox-addon javascript-framework jasmine

javascript - tag - Salida de resultados de prueba de jazmín a la consola.



title of page html (4)

¿Has probado el ConsoleRepoter

jasmine.getEnv().addReporter(new jasmine.ConsoleReporter(console.log));

De acuerdo con el código, Jasmine tiene la clase ConsoleReporter que ejecuta una función de impresión (en este caso console.log) que debe hacer lo que necesita.

Si todo lo demás falla, puede usar esto como punto de partida para implementar su propio reportero de console.log.


Estoy usando Jasmine (BDD Testing Framework para JavaScript) en mi complemento de Firefox para probar la funcionalidad de mi código.

El problema es que jasmine está enviando los resultados de la prueba a un archivo HTML, lo que necesito es a la Consola Firebug u otra solución para generar los resultados.


En la versión más reciente de Jasmine (2.0), si desea obtener resultados de prueba para la consola, debe agregar las siguientes líneas.

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

Sin embargo, la salida a html se incluye de forma predeterminada, por lo que si no desea la salida de html, debe editar el archivo boot.js y eliminar las líneas relevantes desde allí. Si desea personalizar cómo se muestra la salida en el archivo de edición de consola console.js. Source


Para completar, aquí está la configuración completa:

En primer lugar, ejecute el comando npm install :

npm install jasmine-console-reporter --save-dev

Luego revisa la configuración de Jasmine para asegurarte de que tienes la configuración de los ayudantes allí:

spec/support/jasmine.json

{ "spec_dir": "spec", "spec_files": [ "**/*[sS]pec.js" ], "helpers": [ "helpers/**/*.js" ], "stopSpecOnExpectationFailure": false, "random": false }

Dado que los ayudantes se ejecutan antes que las especificaciones, lo único que debe hacer es crear un ayudante de reportero de consola.

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


jasmineRequire.ConsoleReporter no existía en 2.3.0, así que utilicé el siguiente código:

//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());