déboguer dans le navigateur en utilisant testacular (maintenant karma)
J'essaie de trouver la meilleure façon de déboguer mes tests unitaires quand je les casse. Typiquement, dans les environnements de test précédents, je pouvais simplement exécuter les tests dans le navigateur et arrêter le test, ou le code et voir pourquoi mon test échouait. Je n'arrive pas à comprendre comment faire ça avec testacular. Existe-t-il un moyen facile de déboguer les tests unitaires?
4 réponses
Incluez " browsers = ['Chrome']; " dans votre karma.fichier de configuration.
Lorsque Chrome s'ouvre, vous devriez voir "Karma-connected" en haut, avec un bouton "Debug" en haut à droite.
Cliquez sur ce bouton de débogage, et un onglet "Karma DEBUG RUNNER" s'ouvrira. Ensuite, faites simplement un clic droit, inspectez l'élément et déboguez comme vous le feriez normalement.
-
Dans
karma.conf.js
:browsers = ['Chrome'];
-
Dans votre spécification défaillante:
it('spec', function() { debugger; // This is like setting a breakpoint // ... });
- Exécutez Karma.
- Accédez au navigateur Chrome nouvellement ouvert, ouvrez la console et actualisez la page.
Maintenant, dans L'onglet source des outils de développement de Chrome, vous devriez voir l'exécution arrêtée au débogueur.
J'ai trouvé la façon suivante de déboguer qui ne nécessite aucune modification du code (comme l'ajout de l'instruction "debugger")
Définissez le" singleRun " comme false dans le fichier de configuration de karma, de sorte que karma écoute sur le port de débogage et vous pouvez exécuter le test à nouveau dans le navigateur en lançant l'URL donnée ci-dessous et déboguer:
Allez dans le navigateur capturé et cliquez sur le bouton" DEBUG " (ou ouvrez
http://localhost:9876/debug.html
) et utilisez l'inspecteur web pour voir ce qui se passe. (Vous devrez peut-être actualiser la débogage.page html pour cela pour lancer une fois que l'inspecteur web est ouvert.)
Dans votre console, vous devez notifier quelle instruction It() est en train de casser, et pourquoi. Par exemple:
Todos Add a new todo should add a new todo FAILED
expected todo.length to be 1 but was 0
Cependant, vous pouvez trouver utile de définir
logLevel = LOG_DEBUG;
Dans votre karma.conf.fichier js.