Как отладить работу теста
Проблема
При разработке тестов, рано или поздно, любой разработчик начинает сталкиваться с ошибками, которые трудно обнаружить с помощью обычного просмотра кода. И тогда приходится применять уже программные инструменты, чтобы понять, где закралась ошибка, или почему тест ведет себя не так, как от него ожидает разработчик.
Давайте разберемся, какие возможности есть у разработчика testplane-тестов.
Решение 1: опция --inspect или --inspect-brk
Для того чтобы видеть как тест выполняется шаг за шагом, в testplane существует режим отладки. Этот режим опирается на интеграцию V8 инспектора с Node.js.
Про интеграцию V8 инспектора с Node.js
Интеграция с инспектором V8 позволяет подключать Chrome DevTools к инстансу Node.js для отладки и профилирования. Для этого используется протокол Chrome DevTools.
Инспектор V8 можно включить, передав опцию --inspect
при запуске приложения на Node.js. Также можно указать пользовательский порт с этой опцией, например, --inspect=9222
будет принимать подключения DevTools
на порту 9222
.
Чтобы остановить выполнение кода на первой строке приложения, вместо опции --inspect
используйте опцию --inspect-brk
.
$ node --inspect index.js
Debugger listening on ws://127.0.0.1:9229/dc9010dd-f8b8-4ac5-a510-c1a114ec7d29
For help, see: https://nodejs.org/en/docs/inspector
В при веденном выше примере UUID dc9010dd-f8b8-4ac5-a510-c1a114ec7d29
в конце URL'а генерируется «на лету», и отличается в разных сеансах отладки.
Если браузер Chrome старше 66.0.3345.0
, используйте inspector.html
вместо js_app.html
в приведенном выше URL-адресе.
Chrome DevTools пока не поддерживает отладку рабочих потоков. Для их отладки можно использовать ndb.
Чтобы запустить тест в этом режиме, используйте опцию --inspect
. Если вы хотите, чтобы отладчик остановился на первой строке кода, то используйте опцию --inspect-brk
.
Пример:
testplane path/to/mytest.js --inspect
В режиме отладки запускается только один рабочий процесс, и все тесты выполняются только в нем. Используйте этот режим с параметром sessionsPerBrowser=1 для отладки тестов по одному за раз.
Ключевые слова
- --inspect
- --inspect-brk