J'utilise Jasmine via le plugin jasmine-maven, et j'aimerais voir les messages console.log () dans la sortie de la construction Maven. Existe-t-il un moyen d'y parvenir?
Si console.log () ne peut pas être redirigé, existe-t-il un autre moyen de se connecter à partir de mes tests afin qu'ils apparaissent sur la sortie de la construction Maven?
J'exécute ces tests sur Jenkins d'une manière sans tête, et je voudrais un moyen d'obtenir une sortie de débogage à partir des tests.
Essayer
console.info('foo')
À partir des javascripts de test.
Vous pouvez utiliser:
jasmine.log("I've got a big log.");
NB: Voir douglas-treadwell's commentaire ci-dessous.
Cela fait référence à Jasmine 1.x. Avec Jasmine 2.0, utilisez directement console.log directement.
Si vous exécutez dans un nœud env. Vous pourriez utiliser
process.stdout.write ("ceci sera envoyé à la console");
J'utilise jasmine 2
via guard
et phantom js
et ont constaté que la norme console.log
les messages dans les tests sont très bien sortis sur la console du runner de spécification jasmine.
J'ai également constaté que console.log
les messages dans les éléments de code javascript que je teste sont écrits dans stdout
mais pas console.log
messages dans les tests eux-mêmes.
Je pense que n'est pas possible .
J'ai dû écraser l'implémentation console.log dans le chargeur de spécifications. soit (en utilisant 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');
ici vous avez un exemple fonctionnel
Si vous cherchez désespérément une sortie dans une fenêtre de terminal afin que vous puissiez avoir des données à revoir une fois le test terminé et le navigateur fermé, console.error()
semble faire l'affaire.
Ran dans le même problème en utilisant grunt/karma/jasmine (karma-jasmine 0.2.2) -
Pour suivre ce que Dave Sag a dit, j'ai trouvé que tous mes messages console.log
Du code que je testais fonctionnaient bien, mais rien de mes describe() {}
et it() {}
bloque tout journal.
Je ai constaté que vous pouvez vous connecter à partir d'un bloc beforeEach() {}
. Au moins cela a fonctionné pour moi:
beforeEach(function() {
this.model = new blahModel();
console.log('this.model = ', this.model);
});
Notez que cela se connecte uniquement dans la console du navigateur et pour une raison quelconque, ne se connectera pas en ligne de commande. Un peu étrange lorsque les instructions console.log du bloc de code testé se connectent en ligne de commande. J'ai également trouvé ce qui semble être une meilleure approche pour une consignation cohérente ici .
MISE À JOUR: En fait, je vois que la journalisation fonctionne également pour elle, je pense que j'ai eu d'autres erreurs qui empêchaient cela.
1) Allez dans le répertoire de votre projet où vous avez votre pom.xml. Exécutez la commande suivante dans cmd. mvn jasmine: bdd
2) Vous obtiendrez l'URL localhost: localhost: 8234 (juste un exemple).
3) Exécutez cette URL dans le navigateur. Maintenant, tous vos cas de test sont exécutés.
4) Faites l'élément Inspecter de cette page. Dans la console du navigateur, vous pourrez voir toutes les traces console.log () ou console.error ().