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

<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 Test Insights using your CI 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 [documented on the Cypress
website](https://docs.cypress.io/app/tooling/reporters).

The best way to do this is to use `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:
   ```json
   {
     "reporterEnabled": "spec, mocha-junit-reporter",
     "mochaJunitReporterReporterOptions": {
       "mochaFile": "cypress/results/junit-[hash].xml"
     }
   }
   ```

## Update Your CI Workflow

### GitHub Actions

<CIInsightsSetupNote />

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

Give the step that runs Cypress an `id`, so the upload step below can report
its outcome:

```yaml
- name: Run Cypress Tests and Generate JUnit Report
  id: tests
  continue-on-error: true
  run: npm run test:cypress
```

Then add the upload step after it:

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

<GhaMergifyCiQuarantineSetup />

### Buildkite

<BuildkiteCIUploadStep reportPath="cypress/results/junit*.xml" />
<BuildkiteCIUploadStepMatrix reportPath="cypress/results/junit*.xml" />

<BuildkiteCIQuarantineSetup />

### Any CI (Mergify CLI)

<MergifyCliUploadStep reportPath="cypress/results/junit*.xml" testCommand="npm run test:cypress" />

## Verify and Review in Test 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 Test Insights.

You can then review your test results, including any failures or flaky tests,
directly in the [Test Insights
dashboard](https://dashboard.mergify.com/test-insights/detection).

## Troubleshooting Tips

<ul>
  <CommonTroubleshootingTips />
</ul>
