Я пытаюсь найти лучший способ отладить мои модульные тесты, когда я их сломаю. Как правило, в предыдущих тестовых средах я мог просто запускать тесты в браузере и контрольные точки теста, или код, и видеть, почему мой тест не срабатывает. Я не могу понять, как это сделать с testacular. Есть ли простой способ отладки модульных тестов?
Отладка в браузере с использованием testacular (теперь карма)
Ответ 1
Включить "браузеры = ['Chrome'];" в файле karma.config.
Когда Chrome открывается, вы должны увидеть "Карма - подключена" вверху, с кнопкой "Отладка" в верхнем правом углу.
Нажмите эту кнопку отладки, и откроется вкладка "Karma DEBUG RUNNER". Затем просто щелкните правой кнопкой мыши, проверьте элемент и отлаживайте, как обычно.
Ответ 2
-
В
karma.conf.js
:browsers = ['Chrome'];
-
В вашей неудачной спецификации:
it('spec', function() { debugger; // This is like setting a breakpoint // ... });
- Запустить карму.
- Перейдите к недавно открытому браузеру Chrome, откройте консоль и обновите страницу.
Теперь на вкладке источника разработчика Chrome Developer вы должны увидеть, что выполнение остановлено в отладчике.
Ответ 3
Я нашел следующий способ отладки, который не требует внесения каких-либо изменений в код (например, добавление оператора "отладчик" )
Установите "singleRun" как false в файле конфигурации кармы, так что карма будет прослушивать порт отладки, и вы можете снова запустить тест в браузере, запустив приведенный ниже URL и отлаживая:
Перейдите в захваченный браузер и нажмите кнопку "DEBUG" (или откройте
http://localhost:9876/debug.html
) и используйте веб-инспектора, чтобы увидеть что происходит. (Возможно, вам потребуется обновить страницу debug.html для запуска, как только веб-инспектор открыт.)
Ответ 4
В вашей консоли вы должны уведомить, что это() выражение нарушает, и почему. Например:
Todos Add a new todo should add a new todo FAILED
expected todo.length to be 1 but was 0
Однако вам может быть полезно установить
logLevel = LOG_DEBUG;
в файле karma.conf.js.