Могу ли я выполнить команду и отобразить ее в журнале команд (перемещение во времени) после того, как командой или утверждением была выдана ошибка тайм-аута?

#javascript #error-handling #cypress

#javascript #обработка ошибок #cypress

Вопрос:

Я тестировал приложение для чата с Cypress. Приложение имеет внутреннее состояние, которое доступно мне только после завершения сеанса. Я хочу быть в состоянии гарантировать, что внутреннее состояние сообщается после каждого тестового запуска в целях отладки. В настоящее время это работает без проблем при прохождении тестов. Последняя команда, которую я выполняю во всех тестах, — это щелчок по завершению сеанса, который затем сохраняется в Cypress. Проблема, с которой я сталкиваюсь, заключается в том, что после сбоя Cypress при выполнении команды или утверждения я не могу сообщить приложению сбросить состояние и сохранить его в журнале команд.

Я смог запустить функцию finalize () после выдачи ошибки, используя приведенный ниже код, и результат был отображен в браузере, но результата не было в журнале команд / time travel после завершения всех тестов в спецификации.

 Cypress.on('fail', (error, runnable) => {
    Cypress.$('#finalizeButton').click()
    throw error
})
  

Комментарии:

1. Можете ли вы попробовать ведение журнала Cypress cy.log(message) . Ссылка: docs.cypress.io/api/commands/log.html#Syntax

2. У меня нет доступа к cy из support/index.js файл, который я мог бы указать. Кроме того, вывод состояния длинный и поэтому был бы непригоден для использования в крошечном журнале команд. Но спасибо вам!