debugger - depurar javascript chrome
Redirige las llamadas a console.log() a la salida estándar en las pruebas de Jasmine (8)
Estoy usando Jasmine a través del plugin jasmine-maven, y me gustaría ver los mensajes de console.log () en la salida de compilación de Maven. ¿Hay una manera de lograr esto?
Si no se puede redirigir console.log (), ¿hay alguna otra manera de iniciar sesión desde mis pruebas para que se muestren en la salida de compilación de Maven?
Ejecutaré estas pruebas en Jenkins de una manera sin cabeza, y me gustaría un medio para obtener algún resultado de depuración de las pruebas.
1) Vaya a su directorio de proyectos donde tiene su pom.xml. Ejecute el siguiente comando en cmd. mvn jazmín: bdd
2) Obtendrá la URL del localhost: localhost: 8234 (solo un ejemplo).
3) Ejecute esta URL en el navegador. Ahora se ejecutan todos los casos de prueba.
4) Haga el elemento Inspeccionar de esta página. En la consola del navegador, podrá ver todos los rastreos console.log () o console.error ().
Creo que no es posible .
Tuve que sobrescribir la implementación de console.log en el cargador de especificaciones. es decir (usando jQuery) :
var console = {
panel: $(''body'').append(''<div>'').css({position:''fixed'', top:0, right:0,background:''transparent''}),
log: function(m){
this.panel.prepend(''<div>''+m+''</div>'');
}
};
console.log(''message 1'');
console.log(''message 2'');
here tienes un ejemplo funcional
Encontré el mismo problema usando ronco / karma / jazmín (karma-jazmín 0.2.2) -
Para estar de acuerdo con lo que dijo Dave Sag, descubrí que todos los mensajes de console.log
del código que estoy probando funcionan bien, pero nada de mis bloques de describe() {}
e it() {}
registran nada.
Descubrí que puede iniciar sesión desde un beforeEach() {}
. Al menos funcionó para mí:
beforeEach(function() {
this.model = new blahModel();
console.log(''this.model = '', this.model);
});
Tenga en cuenta que esto solo inicia sesión en la consola del navegador y, por algún motivo, no inicia sesión en la línea de comandos. Algo extraño cuando las instrucciones console.log del bloque de código probado se registran en la línea de comando. También encontré lo que parece ser un mejor enfoque para el registro constante here .
ACTUALIZACIÓN: estoy viendo que el registro también funciona para los bloques, creo que tuve otros errores que lo impedían.
Estoy usando jasmine 2
través de guard
y phantom js
y he descubierto que los mensajes de console.log
estándar dentro de las pruebas se envían a la consola del jasmine spec runner.
También encontré que los mensajes de console.log
dentro de los elementos de código JavaScript que estoy probando se escriben en los mensajes de stdout
pero no en los de console.log
dentro de las pruebas mismas.
Puedes usar:
jasmine.log("I''ve got a big log.");
NB: vea el comentario de douglas-treadwell a continuación.
Esto se refiere a Jasmine 1.x. Con Jasmine 2.0 simplemente use console.log directamente.
Si está desesperado por algún resultado en una ventana de Terminal para que pueda revisar los datos después de que la prueba se haya completado y el navegador se haya cerrado, console.error()
parece ser el truco.
Si está ejecutando en un nodo env. Podrías usar
process.stdout.write ("esto se enviará a la consola");
Tratar
console.info(''foo'')
De los javascripts de prueba.