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?

50
demandé sur Nelu 2013-04-09 20:02:36

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.

47
répondu Josh Noe 2013-07-14 22:48:57
  1. Dans karma.conf.js:

    browsers = ['Chrome'];
    
  2. Dans votre spécification défaillante:

    it('spec', function() {
        debugger; // This is like setting a breakpoint
        // ...
    });
    
  3. Exécutez Karma.
  4. 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.

66
répondu Tomas Romero 2013-08-17 21:41:47

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.)

9
répondu Naga Kiran 2014-10-21 08:16:29

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.

0
répondu Shadowedged 2013-04-23 20:15:20