Cypress предоставляет мощные возможности для отладки тестов через свой Test Runner. Эти инструменты позволяют анализировать выполнение тестов, выявлять ошибки и управлять состоянием приложения в реальном времени.
Test Runner отображает каждый тест и его отдельные шаги. Каждое
действие в тесте (например, cy.get(),
cy.click(), cy.type()) фиксируется и
визуализируется в интерфейсе. Для каждого шага доступна подробная
информация:
Встроенная консоль Test Runner позволяет запускать команды на лету с помощью Cypress API. Команды можно вводить в режиме реального времени для проверки состояния элементов, изменения данных или вызова функций приложения.
Примеры:
cy.get('button.submit').then($btn => {
console.log($btn.text());
});
cy.window().then(win => {
win.localStorage.clear();
});
Такая интерактивность позволяет анализировать поведение приложения без необходимости перезапуска теста.
debug()
и pause()Cypress предоставляет специальные методы для детальной отладки:
cy.debug() останавливает выполнение на
текущем шаге и выводит объект команды в консоль браузера. Позволяет
изучить состояние DOM и цепочку вызовов.cy.pause() приостанавливает выполнение
теста до ручного продолжения в интерфейсе Test Runner. Полезно для
проверки промежуточных состояний приложения или воспроизведения ошибок,
которые трудно отловить автоматически.cy.get('input[name="username"]').type('admin').debug();
cy.get('form').submit().pause();
Test Runner интегрируется с инструментами разработчика браузера. Это позволяет:
Cypress автоматически подхватывает ошибки браузера и отображает их в панели теста, что упрощает поиск причин неудачных тестов.
Cypress поддерживает логирование на разных уровнях:
console.log,
console.warn, console.error).cy.get('div.alert').should('be.visible').then($el => {
console.log('Alert text:', $el.text());
});
Важно использовать логирование систематически, чтобы быстро идентифицировать точки сбоя и понять последовательность действий, приведших к ошибке.
Test Runner автоматически делает скриншоты при падении теста. В дополнение к этому можно настроить видеозапись всей сессии выполнения тестов. Это особенно полезно для интеграции с CI/CD, когда визуальная отладка невозможна.
cypress/screenshots.cypress/videos.cy.pause() только на проблемных шагах,
чтобы не замедлять тесты.CYPRESS_DEBUG=true) при
анализе сложных ошибок.Эффективное использование инструментов отладки Cypress позволяет сократить время поиска ошибок, визуализировать поведение приложения и улучшить стабильность тестов, делая процесс автоматизации прозрачным и управляемым.