Envíe los resultados de la prueba jasmine a la consola
Estoy usando Jasmine (BDD Testing Framework for 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 una consola Firebug u otra solución para generar los resultados.
4 answers
¿Has probado el Consolador
jasmine.getEnv().addReporter(new jasmine.ConsoleReporter(console.log));
Según el código Jasmine tiene la clase ConsoleReporter que ejecuta una función de impresión (en este caso console.log) que debería hacer lo que necesitas.
Si todo lo demás falla, podría usar esto como punto de partida para implementar su propia consola.reportero de registro.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-08-23 08:19:36
En la nueva versión de Jasmine (2.0) si desea obtener la salida de prueba a 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
La salida a html está incluida de forma predeterminada, por lo que si no desea una salida html en absoluto, debe editar su arranque.js archivo y eliminar las líneas relevantes de allí. Si desea personalizar cómo se muestra la salida en la consola, edite la consola de archivos.js. Fuente
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-31 09:59:09
[1] JasmineRequire.ConsoleReporter no existía en 2.3.0 así que usé 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());
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-19 04:25:13
Por el bien de la integridad aquí está la configuración completa:
En primer lugar ejecute el comando npm install
:
npm install jasmine-console-reporter --save-dev
Luego revise su configuración de Jasmine para asegurarse de que tiene la configuración de helpers allí:
spec/support/jasmine.json
{
"spec_dir": "spec",
"spec_files": [
"**/*[sS]pec.js"
],
"helpers": [
"helpers/**/*.js"
],
"stopSpecOnExpectationFailure": false,
"random": false
}
Dado que los helpers se ejecutan antes de las especificaciones, lo único que tiene que hacer es crear un helper 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);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-19 14:26:59