Тестування javascript з Mocha - як я можу використовувати console.log для налагодження тесту?


104

Я використовую тестовий запуск javascript "Mocha".

У мене є тест, який не працює, тому я хотів би налагодити його за допомогою console.log.

Але коли тести виконуються, виходу немає (лише результати тестування Mocha). Схоже, Моха захопив і придушив мою console.logпродукцію!

Як я можу змусити Mocha показати свій результат? (на тести, які не вдалися)?

Редагувати:

Величезні вибачення! - console.logпрацює під час тестів! Я, мабуть, очікував, що це придушить вихід, і я не перевірив належним чином власний код. Дякуємо за відповідь. Отже ... це, як кажуть ... можливо, насправді було б непогано придушити вихід для тестів, які проходять? хм ...

Відповідна примітка: Я хочу використовувати, console.logтому що у мене виникають багато проблем, намагаючись налагодити налагоджувач Eclipse для підключення до node.js.

Я єдиний, хто вважає це хитрим? Як ви, налагоджуєте, node.js? З налагоджувачем чи із console.logзаявами?


Хороша справа! :) Зараз я все ще дуже «налагоджую» вузол за допомогою тестів moca. Я бачу час у найближчому майбутньому, коли я, можливо, захочу оцінити деякі варіанти тут: stackoverflow.com/questions/1911015/…
Зак Бонхем,

Я б сказав, що ви не використовуєте Eclipse для Node.js, це дійсно не найкраще середовище для використання ІМО. WebStorm JetBrains - чудовий IDE Node.js, хоча коштує грошей. Якщо ви шукаєте безкоштовно, мені дуже сподобався новий Visual Studio Code, який має чудову вбудовану підтримку налагодження Node та інші речі, які роблять приємну розробку вузла.
dsw88

@ dsw88 - Мій досвід роботи з WebStorm полягає в тому, що він сповільнився, як тільки наша структура файлів почала набувати великої та глибокої глибини. Нагадували мене про старі часи з програмами Java.
kirk.burleson

2
На додаток до того, що написав @ dsw88: Використовуйте код VS: Вставте "налагоджувач;" заява десь у вашому коді. Почніть свій тест з опції --inspect-brk і скористайтеся дією налагодження коду VS "NodeJs attach". Відладчик запускається з першого рядка в сценарії mocha, і вам доведеться один раз натиснути Відновити. Наступного разу ваш "налагоджувач". заява досягнута, ви добре піти.
FabianTe

Відповіді:


49

Які варіанти Mocha ви використовуєте?

Може, це пов'язане з тим, що репортер (-R) або ui (-ui) використовується?

console.log(msg);

добре працює під час моїх тестових пробіжок, хоча іноді змішується у трохи гуфі. Імовірно, через асинхронний характер тестового пробігу.

Ось варіанти (mocha.opts), які я використовую:

--require should
-R spec
--ui bdd

Хм .. просто перевірено без жодних mocha.opts і console.logдосі працює.


4
де лог () насправді багато TO?
PositiveGuy

32

Якщо ви тестуєте асинхронний код, вам потрібно обов’язково розмістити done()в зворотному дзвінку цей асинхронний код. У мене виникла ця проблема під час тестування http-запитів до API REST.


20

Можливо, ви також поставили свої дані console.logпісля того, як очікується, що не вдасться і не збережеться, тому ваш рядок журналу ніколи не виконується.


2
Так, це було моєю проблемою, дякую, що ви запропонували це. Я перемістив журнали консолі перед тим, як не відбувся .expect, і вони показуються зараз.
redfox05

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.