10
votes

Comment voir $ Appels journaux dans le terminal lors de l'exécution des tests de l'unité Angularjs avec Karma?

Dans un projet basé sur un projet de semences angulaires, je suis en cours d'exécution des tests d'unité avec ./ scripts / test.sh-log-niveau de débogage mais aucun des messages du journal que je vois ne vient pas de mon application. Comment puis-je les voir? Dans mon application, je suis enregistré avec $ journal .


2 commentaires

Dans le terminal, vous ne pouvez voir que Console.log () les appels définis dans votre fichier de spécifications, pas dans votre application.


Voir ma réponse ci-dessous. Je dois voir mes journaux d'applications.


3 Réponses :


12
votes

Vous avez travaillé! Avais-je utilisé console.log directement il aurait fonctionné mais maintenant que j'utilise $ journal Je devais le corriger dans un avant (regarde Comme par défaut, il n'a pas été câblé par angularjs): xxx


0 commentaires

15
votes

merci. Comme mentionné, les tests peuvent injecter console code> pour $ journal code> à l'aide de $ fournir code>. Pour la postérité, $ fournir code> n'est pas disponible via injecter (fonction (...) {...}) code> mais doit être injecté dans un argument de fonction sur Module code> :

beforeEach(module('myapp', function($provide) {
  // Output messages
  $provide.value('$log', console);
}));


2 commentaires

@Carl ne devrait-il pas obtenir de crédit pour cette réponse? Je suppose que non, je n'ai pas regardé les horodatages. Nm


Oui, j'ai construit sur la réponse antérieure car il n'était pas évident pour moi comment remplacer correctement le service journal dans un test. Comme mentionné ici, $ fournir doit être injecté à l'aide du module .



4
votes

Pour plus de clarté, vous devez la structurer comme ceci:

beforeEach(module('myapp'));

beforeEach(module('myapp', function($provide) {
  // Output messages
  $provide.value('$log', console);
})); 


0 commentaires