Cypress предоставляет мощный механизм для генерации отчетов о тестировании, которые позволяют отслеживать результаты выполнения тестов, анализировать ошибки и визуализировать статистику. Одним из наиболее популярных форматов являются HTML отчеты, благодаря наглядности и удобству использования.
Для генерации HTML отчетов в Cypress обычно используют плагины, такие как mochawesome. Он интегрируется с Mocha, на которой основан Cypress, и позволяет выводить подробные, красочные отчеты.
npm install --save-dev mochawesome mochawesome-merge mochawesome-report-generator
mochawesome — основной плагин для генерации JSON и HTML
отчетов.mochawesome-merge — инструмент для объединения
нескольких JSON файлов в один.mochawesome-report-generator — генератор HTML отчетов
из JSON.В файле cypress.config.js или cypress.json
настраивается reporter:
const { defineConfig } = require("cypress");
module.exports = defineConfig({
reporter: "mochawesome",
reporterOptions: {
reportDir: "cypress/reports",
overwrite: false,
html: true,
json: true,
timestamp: "mmddyyyy_HHMMss"
},
e2e: {
setupNodeEvents(on, config) {
// дополнительные события можно добавить здесь
}
}
});
reportDir — каталог, где будут сохраняться отчеты.overwrite: false — сохраняет отчеты с уникальными
именами.html: true и json: true — генерируются оба
формата, что удобно для последующего объединения.После выполнения тестов Cypress создаёт JSON файлы для каждого запуска. Для формирования одного HTML отчета используется mochawesome-merge:
npx mochawesome-merge cypress/reports/*.json > cypress/reports/report.json
npx marge cypress/reports/report.json -f report -o cypress/reports/html
HTML отчет включает несколько важных разделов:
Для улучшенной наглядности ошибок часто используется автоматическое сохранение скриншотов:
Cypress.Screenshot.defaults({
capture: 'runner'
});
В отчете под каждой ошибкой будет ссылка на соответствующий скриншот, что облегчает анализ падений тестов.
HTML отчеты удобно использовать в пайплайнах CI/CD. Например, в Jenkins или GitLab CI можно:
Пример для GitLab CI:
cypress_tests:
stage: test
script:
- npx cypress run
- npx mochawesome-merge cypress/reports/*.json > cypress/reports/report.json
- npx marge cypress/reports/report.json -f report -o cypress/reports/html
artifacts:
paths:
- cypress/reports/html
when: always
Mochawesome позволяет изменять оформление HTML отчета, добавлять метки, категории тестов и теги. Это удобно при больших проектах с сотнями тестов. Примеры настроек:
reporterOptions: {
reportDir: "cypress/reports",
reportTitle: "Автоматизированные тесты проекта",
inlineAssets: true,
charts: true,
code: true
}
reportTitle — заголовок отчета.inlineAssets — включает CSS и JS внутрь HTML для
удобного обмена.charts — строит диаграммы успешных/неуспешных
тестов.code — отображает исходный код тестов в отчете.HTML отчеты являются стандартом для крупных проектов, где важна прозрачность и контроль качества автоматизированного тестирования. Их настройка и интеграция с Cypress позволяют получить подробную визуализацию тестов и ускорить процесс выявления проблем.