---
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.

<ReviewInTestInsights />

## Troubleshooting Tips

<ul>
  <CommonTroubleshootingTips />
</ul>
