Подтвердить что ты не робот

Отладка в браузере с использованием testacular (теперь карма)

Я пытаюсь найти лучший способ отладить мои модульные тесты, когда я их сломаю. Как правило, в предыдущих тестовых средах я мог просто запускать тесты в браузере и контрольные точки теста, или код, и видеть, почему мой тест не срабатывает. Я не могу понять, как это сделать с testacular. Есть ли простой способ отладки модульных тестов?

4b9b3361

Ответ 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.