2017-09-22 3 views
0

Mon but est de débugger un de mes tests. J'utilise Mocha comme base, et SinonJS pour les espions, les stubs et les mock. Pour une raison inconnue, mon talon de la méthode ajax a cessé de fonctionner. Cela a fonctionné il y a une semaine, maintenant les demandes sont envoyées et le talon ne suit pas les appels.Debuggin avec moka, charge globals

Je ces lignes à l'intérieur de la plus à l'extérieur describe

let sandbox = sinon.sandbox.create(); 
let ajaxStub = undefined; 

puis ceci:

beforeEach(function() { 
    ajaxStub = sandbox.stub($, 'ajax'); 
}); 

afterEach(function() { 
    sandbox.restore(); 

}); 

Quoi qu'il en soit, ma question n'est pas ce qui ne va pas avec cela, je fais probablement ailleurs quelque chose d'extrêmement stupide , et un débogage pourrait probablement le résoudre. Mon problème est avec le débogage lui-même.

mocha --debug-brk --inspect ./test/mytest.js 

C'est ce que je cours en ligne de commande pour lancer la session de débogage.

Mon problème est d'exécuter les tests que je suis actuellement à l'aide Gulp, avec laquelle je charge toutes mes dépendances cadres et toutes mes bibliothèques - GLOBALS ajoutées ainsi incluent également jQuery et sinon

Et bien sûr , si je débogue mes tests en utilisant cette ligne de commande, NodeJS ne charge pas les fichiers requis dans l'environnement, et à la première référence à sinon je reçois une exception.

Je pourrais créer une page html dans laquelle je charge les fichiers et les tests requis et exécuter le test - puis le déboguer manuellement avec l'inspecteur du navigateur - mais c'est quelque chose que je voudrais éviter. Y at-il quelque chose de plus automatisé?

Je ne suis pas un expert NodeJS, je viens de comprendre à peu près ce qu'il est et comment il fonctionne, donc je suis assez confiant qu'il pourrait y avoir quelque chose que je manqué qui peut être utile :)

Qu'est-ce que je Je pense en ce moment à un script batch pour trouver les fichiers requis, mais c'est tout ce que j'ai. Juste une note supplémentaire: la base de code est vraiment ancienne et grande, et je n'ai pas vraiment la permission de refactoriser le code existant en modules ES6.

Répondre

0

J'ai trouvé une solution: Je vais créer un script testDebugLoader.js dans lequel j'écrirai le test que je veux déboguer, et un tableau de chemins vers les scripts que je dois charger.

Parcourez ensuite la baie, chargez chaque fichier nécessaire et appelez eval sur le texte récupéré.