Cypress предоставляет мощный встроенный механизм генерации отчётов, который облегчает анализ результатов тестирования и выявление проблем. В отличие от классических инструментов, где отчёты требуют отдельной настройки, Cypress сразу предоставляет информацию о каждом тесте в интерактивном виде и поддерживает интеграцию с внешними форматами для автоматизации CI/CD процессов.
Cypress поддерживает несколько форматов отчетности:
Для генерации внешних отчётов часто используют cypress-mochawesome-reporter, который позволяет создавать наглядные HTML и JSON отчёты с подробной информацией о каждом тесте, включая скриншоты и видео.
Cypress автоматически сохраняет скриншоты и видео при падении тестов, что критически важно для отладки.
cy.screenshot().cypress.json ("video": true).cypress/screenshots и cypress/videos
соответственно, что упрощает отслеживание ошибок в автоматических
тестах.Для полноценного использования встроенных отчётов и интеграции с CI необходимо выполнить несколько шагов:
Установка и подключение плагинов:
npm install --save-dev mochawesome mochawesome-merge mochawesome-report-generator
Затем подключение в файле cypress/plugins/index.js:
const mochawesome = require('mochawesome');
module.exports = (on, config) => {
on('after:run', (results) => {
// обработка результатов после прогонов
});
};Конфигурация генерации отчётов в
cypress.json или cypress.config.js:
{
"reporter": "mochawesome",
"reporterOptions": {
"reportDir": "cypress/reports",
"overwrite": false,
"html": true,
"json": true
}
}
Это позволит автоматически создавать читаемые HTML-отчёты и JSON-файлы для последующего анализа.
Интеграция с CI/CD:
Использование mochawesome-merge для объединения
отчётов из параллельных прогонов.
Генерация финального HTML с помощью marge:
mochawesome-merge cypress/reports/*.json > cypress/reports/report.json
marge cypress/reports/report.jsonТакой подход обеспечивает централизованное хранение результатов и удобное отображение статистики тестирования.
Cypress позволяет анализировать результаты тестов программно через
объект Cypress.runner, что удобно для создания кастомных
отчётов или интеграции с внешними системами.
Пример проверки статуса тестов после прогонов:
Cypress.on('test:after:run', (test, runnable) => {
if (test.state === 'failed') {
console.log(`Тест ${test.title} завершился с ошибкой`);
// Возможна отправка уведомления или запись в кастомный лог
}
});
Использование встроенных отчётов Cypress позволяет построить прозрачный и детализированный процесс тестирования, минимизируя время на выявление проблем и обеспечивая высокий контроль над качеством приложений.