---
title: Cypress Integration with CI Insights
description: Report your test results from Cypress to CI Insights
---

import cypressLogo from "../../../images/ci-insights/cypress/logo.svg"
import IntegrationLogo from "../../../../components/IntegrationLogo.astro"
import MergifyCIUploadStep from "../../../../components/MergifyCIUploadStep.astro"
import MergifyCIUploadStepMatrix from "../../../../components/MergifyCIUploadStepMatrix.astro"
import CommonTroubleshootingTips from './_common-troubleshooting-tips.mdx'
import CIInsightsSetupNote from "../../../../components/CIInsightsSetupNote.astro"
import GhaMergifyCiQuarantineSetup from "./_gha_mergify_ci_quarantine_setup.mdx"

<IntegrationLogo src={cypressLogo} alt="Cypress logo" />

This guide shows how to configure [Cypress](https://www.cypress.io/) to produce
JUnit reports and upload them to CI Insights within a GitHub Actions workflow.

## Generate a JUnit Report with Cypress

By default, Cypress doesn't generate JUnit-format test results. You need to
enable it in your `cypress.config.ts` file.

This is [documenteded on Cypress
website](https://docs.cypress.io/app/tooling/reporters).

The best way to do this is to leverage `cypress-multi-reporters` so you can
both have JUnit generated while keeping the standard output.

1. Add `cypress-multi-reporters` to your package file, e.g.,
   `npm install --save-dev cypress-multi-reporters mocha-junit-reporter`.

2. Create a `reporter-config.json` at the top of your repository with this
   configuration:
   ```yaml
   {
     "reporterEnabled": "spec, mocha-junit-reporter",
     "mochaJunitReporterReporterOptions": {
       "mochaFile": "cypress/results/junit-[hash].xml"
     }
   }
   ```

## Update Your GitHub Actions Workflow

<CIInsightsSetupNote />

Once you have the JUnit file produced by Cypress, add a step to upload these
results to **CI Insights** via the `mergifyio/gha-mergify-ci` action.

In the workflow file where Cypress is launched, after running `npm run
test:cypress` (or similar), include a step like:

<MergifyCIUploadStep reportPath="cypress/results/junit*.xml" />
<MergifyCIUploadStepMatrix reportPath="cypress/results/junit*.xml" />

<GhaMergifyCiQuarantineSetup />

## Verify and Review in CI Insights

After pushing these changes:

1. Your GitHub Actions workflow will run tests with Cypress.
2. Cypress generates JUnit files.
3. The Mergify CI action uploads that file to CI Insights.

You can then see your test results, including failures and flaky tests,
directly in the CI Insights dashboard.

## Troubleshooting Tips

<ul>
  <CommonTroubleshootingTips />
</ul>
