2012-05-19 11 views
75

Używam testera javascript "Mocha".Testowanie javascript z Mocha - jak mogę użyć console.log do debugowania testu?

Mam test, który się nie udał, więc chciałbym go debugować przy użyciu console.log.

Ale kiedy testy są uruchomione, nie ma wyjścia (tylko wyniki testu z Mocha). Wygląda na to, że Mocha schwytał i stłumił moje wyjście console.log!

Jak mogę przekonać Mocha do pokazania moich wyników? (w przypadku testów, które się nie powiodą)?

EDIT:

Ogromne przeprosiny! - console.log działa podczas testów! Pewnie spodziewałem się, że tłumi to wyjście, a ja nie sprawdziłem poprawnie mojego kodu. Dziękuję za odpowiedź. Więc ... to jest powiedziane ... może to byłoby miłe tłumić wyjście dla testów, które przechodzą? hmm ...

Na temat pokrewny: chcę użyć console.log, ponieważ mam problem z pobieraniem debugera Eclipse do połączenia z node.js.

Czy jestem jedynym, który uważa, że ​​jest to trudne? Jak wy debugujesz plik node.js? Z debuggerem lub z instrukcjami console.log?

+0

Dobra oferta! :) W tej chwili wciąż jestem bardzo "węzłem do debugowania" za pomocą testów moca. Widzę czas w niedalekiej przyszłości, kiedy mogę chcieć poznać niektóre z poniższych opcji: http://stackoverflow.com/questions/1911015/how-to-debug-node-js-applications –

+0

Proponuję, abyś nie korzystaj z Eclipse dla Node.js, to naprawdę nie jest najlepsze środowisko do korzystania z IMO. WebStorm JetBrains jest świetnym IDE Node.js, chociaż kosztuje to pieniądze. Jeśli szukasz wolnego, naprawdę polubiłem nowy kod Visual Studio Code, który ma doskonałą wbudowaną obsługę debugowania węzłów i inne rzeczy, które sprawiają, że tworzenie Node jest przyjemne. – dsw88

+0

@ dsw88 - Moje doświadczenia z WebStorm polegają na tym, że zwolnił on, gdy struktura plików zaczęła być duża i głęboka. Przypominałeś mi o dawnych czasach z aplikacjami Java. –

Odpowiedz

40

Z jakich opcji Mocha korzystasz?

Może ma to coś wspólnego z reporterem (-R) lub ui (-ui)?

console.log(msg); 

działa dobrze podczas moich testów, choć czasami miesza się trochę głupkowato. Przypuszczalnie ze względu na asynchroniczny charakter przebiegu testowego.

Oto opcje (mocha.opts) Używam:

--require should 
-R spec 
--ui bdd 

Hmm..just testowane bez mocha.opts i console.log nadal działa.

+3

mocha -R spec działa świetnie! dzięki –

+2

gdzie log() faktycznie dużo TO? – PositiveGuy

29

Jeśli testujesz kod asynchroniczny, musisz upewnić się, że w wywołaniu tego asynchronicznego kodu jest umieszczona . Miałem ten problem podczas testowania żądań HTTP do REST API.

12

Możliwe, że po upływie oczekiwań, które nie powiodły się i jest nieprzeszkadzane, możesz również umieścić swój console.log, aby linia dziennika nigdy nie została wykonana.

+0

Tak, to był mój problem, dziękuję za sugestię. Przenieśliłem dzienniki konsoli PRZED niepowodzeniem .expect, a teraz pokazują. – redfox05

Powiązane problemy