Редактировать: следующие не напрямую не регистрируют на терминале в режиме без головы, но, тем не менее, не проходят проверку на AUT console.error
и отображают сообщение об ошибке косвеннодаже в терминале без головы, что может быть тем, что вы хотите.
Я не совсем уверен, что вы имеете в виду, но давайте пройдемся по всем местам, где выход может быть зарегистрирован в Cypress, икак обрабатывать несколько дел.
Во-первых, обзор:
Для входа в систему журнал команд , вы используете:
// from inside your test
cy.log('foo');
Для входа в консоль devTools :
// from inside your test
console.log('bar');
Чтобы войти в терминал , вам нужно войти из процесса узла Cypress:
// from within e.g. your plugin/index.js file
console.log('baz');
Как записывать ошибки AUT в терминал, журнал команди провалите тест
(обратите внимание, здесь AUT означает тестируемое приложение , означающее ваше приложение).
Я также использую * 1Пакет 049 * для создания ошибки красного цвета в терминале, что является необязательным.
// plugins/index.js
const ansi = require(`ansicolor`);
module.exports = ( on ) => {
on(`task`, {
error ( message ) {
// write the error in red color
console.error( ansi.red(message) );
// play `beep` sound for extra purchase
process.stdout.write(`\u0007`);
return null;
}
});
};
Примечание: использование внутренней команды cy.now()
для обхода тенденции Cypress 'выбрасывать Cypress detected that you returned a promise
, когдаэто (ИМО) не должно.
(адаптировано с https://github.com/cypress-io/cypress/issues/300#issuecomment-438176246)
// support/index.js or your test file
Cypress.on(`window:before:load`, win => {
cy.stub( win.console, `error`, msg => {
// log to Terminal
cy.now(`task`, `error`, msg );
// log to Command Log & fail the test
throw new Error( msg );
});
});