web-dev-qa-db-fra.com

Comment déboguer les tests Jasmine avec Resharper?

Je ne trouve pas de moyen de déboguer le code JavaScript lors de l'exécution de tests Jasmine avec Resharper dans Visual Studio 2012. J'ai essayé d'exécuter des tests avec le navigateur (Chrome), mais le programme d'exécution de test ferme le port dès l'exécution du test et donc je ne peux pas mettre un point d'arrêt dans le code. A également essayé de fonctionner dans Internet Explorer et de placer des points d'arrêt dans Visual Studio, mais cela ne se rattache pas au processus. Mon test comporte de nombreux /// référence scripts que Resharper inclut automatiquement dans le lanceur de test, mais je ne souhaite pas le faire manuellement pour chaque test que je souhaite déboguer. S'il vous plaît aidez-moi à comprendre cela. Si vous avez un test de jasmin qui échoue, comment le déboguer?

31
orad

Essayez d'utiliser le mot clé debugger. Ajoutez simplement la ligne suivante au code que vous souhaitez déboguer (peut-être dans la spécification):

debugger;

Il appelle toute fonctionnalité de débogage disponible. Cela ne fonctionne pas dans IE, mais plutôt bien dans Chrome (vous avez écrit que vous l'utilisiez, alors je suppose que c'est suffisant pour le débogage).

Bien sûr, assurez-vous ensuite de supprimer le mot clé debugger! Peut-être qu’il n’existe pas de moyen très simple de l’éviter dans le code de production en général (au cas où vous l’utiliseriez non seulement dans spesc) mais si vous êtes intéressé par cette SO question pourrait être utile.

18
zbynour

Puisque debugger; n’a pas fonctionné, j’ai trouvé une autre solution . En ajoutant ce qui suit à mon test, le resharper ne sera pas averti que le test est terminé, nous pouvons donc définir des points d’arrêt de débogage dans le navigateur ouvert ) et mettez à jour (F5) la page.

jasmine.getEnv().currentRunner_.finishCallback = function () {};

Depuis Jasmine 2.0, vous devez utiliser:

ReSharperReporter.prototype.jasmineDone = function () { };

Arrêtez les tests dans la fenêtre resharper testrunner lorsque vous avez terminé.

Cela peut aussi être fait pour QUnit

QUnit.moduleDone = function(){}
33
Torbjörn Nomell

Comme je l'ai posté sur Débogage des tests de jasmin avec resharper et phantom js

J'ai eu le débogueur; pour fonctionner en définissant IE 11 comme navigateur de test dans les options ReSharper. La chose intéressante est que vous pouvez définir vos points d'arrêt dans la version du code Visual Studio et définir et déboguer à l'aide de Visual Studio. Vous n'avez vraiment pas besoin d'interagir avec le navigateur.

1
Jason Bowers

Je sais que c’est une vieille question et que cette réponse est un peu hors sujet, mais si vous ne voulez pas interférer avec le rappel du menu contextuel du testeur Chutzpah, vous pourrez vous aider ici. Exécutez les tests dans resharper/phantomjs (afin d'éviter toute explosion d'onglets) et le débogage dans Chrome (ou le navigateur de votre choix) déclenché par un clic droit:

Extension du menu contextuel du testeur de Chutzpah

0
jolySoft