Ich habe die folgende Nachricht kurz vor einem fehlgeschlagenen Test:
%Vor%Das ist die gesamte Nachricht . Es ist in rot, was mich denken lässt, dass etwas mit dem vor jedem Haken falsch ist, aber ich bin mir nicht sicher, was der Fehler ist. Es könnte sein:
Woher weiß ich, was der Fehler ist?
Dieser spezielle beforeEach()
wird normalerweise vollkommen fehlerfrei ausgeführt.
Ich stieß auf dieses Problem, wenn ich in der pree jeach versehentlich done () zweimal aufgerufen habe (ich habe es einmal am Ende von beforeEach aufgerufen, aber auch über eine async-Funktion im beforeEach aufgerufen).
Wenn ich die Tests im Überwachungsmodus ausgeführt habe, habe ich die Fehlermeldung erhalten, die Sie ohne weitere Informationen beschrieben haben. Wenn ich die Tests normal durchführte, bekam ich keine Fehler. Ich habe dies auf einem zugehörigen Ticket gemeldet.
Woher weiß ich, was der Fehler ist?
Debuggen Sie es genauso, wie Sie es mit normalem Code tun würden. Wenn Sie Assertions in einem beforeEach
-Rückruf machen, missbrauchen Sie das Framework. Behauptungen gehören in die Callbacks it
, also refactor that.
Es ist auch wahrscheinlich nicht nur vergessen, done
aufzurufen, weil Mocha eine klare Fehlermeldung hat, wenn das passiert.
Ihr Code erzeugt wahrscheinlich eine nicht abgefangene Ausnahme und Sie können Ihre bevorzugte Debugging-Art verwenden, um sie zu finden. Ich mag Mokka mit --debug-brk
und debuggen mit node-inspector , aber einige console.log
-Anweisungen sollten auch ausreichen. Hinweis: Übergeben Sie nur die relevante Testdatei an Mocha und verwenden Sie die describe.only
- oder it.only
-Techniken, um die Testsuite klein und fokussiert zu halten, während Sie die Ursache aufspüren.
Tags und Links javascript testing node.js mocha