введите сюда описание изображения
TypeError: не удалось выполнить «json» для «Ответа»: поток тела уже прочитан
Следующая ошибка возникла из-за кода вашего приложения, а не из Cypress. Это было вызвано необработанным отказом от обещания.
Не удалось выполнить «json» для «Ответа»: поток тела уже прочитан.
Когда Cypress обнаруживает необнаруженные ошибки, возникающие в вашем приложении, он автоматически проваливает текущий тест.
Это поведение настраивается, и вы можете отключить его, прослушав событие
uncaught:exception
.
Когда возникает эта ошибка? На каком этапе? И не хочу пренебрегать, но ошибка в том, что происходит, прямо здесь: это ошибка, исходящая от вашего приложения, и Cypress не проходит ваш тест, если обнаруживает ошибку. Без предоставления кода вашего приложения, минимально воспроизводимого примера или даже объяснения того, что вызывает ошибку, никому из нас будет практически невозможно помочь.
Когда вы видите ошибку, в которой говорится о необнаруженных ошибках, возникших в вашем приложении, это означает, что приложение само выдало ошибку, но не обработало ее.
Это не значит, что тест делает что-то неправильно, но вы можете сказать Cypress не жаловаться на проблему, используя код отсюда Чтобы условно отключить обработку неперехваченных исключений для определенной ошибки
Cypress.on('uncaught:exception', (err, runnable) => {
if (err.message.includes("Failed to execute 'json' on 'Response")) {
return false
}
})
(это место расположено вверху вашей спецификации, желательно перед cy.visit()
).
Однако в вашем случае ошибка в приложении заключается просто в том, что используется статический метод Response: json().
Метод json() интерфейса Response принимает поток ответа и считывает его до завершения.
но ошибка сообщает вам, что поток ответов уже прочитан и, предположительно, уже преобразован в формат JSON.
Итак, удаление статического метода .json()
должно решить вашу проблему.
Я удалил .json(), и теперь мой код работает правильно. Спасибо за помощь!
Предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему. (Не вставляйте изображения вашего кода)