What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.

Customize Cypress terminal output by selecting a Mocha reporter. Set reporter in cypress.config.js for the project default, or pass --reporter to cypress run for a one-off choice. Configure that reporter with reporterOptions or the matching --reporter-options flag. The available options depend on the reporter you select.

This guide follows the current Cypress reporter and CLI guidance checked on September 29, 2026. Cypress’s pages do not identify a release number for these examples, so verify compatibility with the Cypress version and reporter packages installed in your project.

Start with the run mode

The reporter setting applies to cypress run, the command normally used for headless or CI execution. It controls how test results are printed or written. It does not change your test code, browser behavior, assertions, or pass/fail rules.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

If you only want to reduce Cypress’s other standard-output messages, add --quiet. That flag does not select another reporter and does not suppress the configured reporter’s own output.

npx cypress run --quiet

Choose the reporter that matches the terminal summary you need

Goal Route Important check
Keep Cypress’s normal test-by-test terminal display The default spec reporter It writes reporter output to standard output.
Create CI-readable XML The built-in junit reporter Use a unique file name for every spec file.
Use TeamCity service messages The built-in teamcity reporter Confirm that your CI server expects TeamCity’s format.
Use a custom display or format A local reporter path or an npm reporter package Check that reporter’s installation, options, and Cypress compatibility.
Print progress and save an artifact A multi-reporter package such as cypress-multi-reporters It requires an additional dependency and configuration file.

Mocha reporter names are not interchangeable. An option accepted by JUnit may be ignored or rejected by another reporter, so consult the selected reporter’s documentation before copying settings.

Set a project-wide reporter in cypress.config.js

Use the configuration file when every local and CI run should use the same reporter.

Use a local custom reporter file

const { defineConfig } = require('cypress')

module.exports = defineConfig({
  reporter: 'reporters/custom.js',
})

A relative path is resolved from the project. Cypress also supports an absolute path when the reporter lives outside the project directory.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use an npm-installed reporter

const { defineConfig } = require('cypress')

module.exports = defineConfig({
  reporter: 'mochawesome',
})

Install the package in the project before running Cypress, and use the package’s documented reporter name. Keep the package in the dependency set used by CI; a reporter installed only on a developer workstation will fail in a clean build.

Configure JUnit output and reporter options

Cypress includes a JUnit reporter. The following configuration writes XML to a file and also sends the reporter output to the console:

const { defineConfig } = require('cypress')

module.exports = defineConfig({
  reporter: 'junit',
  reporterOptions: {
    mochaFile: 'results/my-test-output.xml',
    toConsole: true,
  },
})

reporterOptions belongs at the top level of the Cypress configuration object, alongside reporter. The property names are reporter-specific; mochaFile and toConsole are the options shown for this JUnit example, not universal Cypress settings.

Avoid overwriting reports from multiple spec files

Cypress processes each spec separately during a run. If every spec writes to the same static path, later output can overwrite earlier output, leaving only the last report. Use a per-spec filename pattern containing [hash]:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
const { defineConfig } = require('cypress')

module.exports = defineConfig({
  reporter: 'junit',
  reporterOptions: {
    mochaFile: 'results/test-output-[hash].xml',
    toConsole: false,
  },
})

This produces separate XML files. If your CI system requires one combined document, merge the per-spec files in a separate reporting step; Cypress’s reporter setting does not itself perform that merge.

Override the reporter for one command

The CLI is useful when you want to keep the repository default but change output for a particular CI job or debugging session.

Switch to JUnit for one run

npx cypress run --reporter junit --reporter-options "mochaFile=results/my-test-output.xml,toConsole=true"

The command-line options are comma-separated in the documented pattern. Quote the complete value so your shell passes it as one argument. For a multi-spec run, replace the static file name with a per-spec pattern such as results/test-output-[hash].xml.

Use a custom reporter for one run

npx cypress run --reporter ./reporters/custom.js

Use the path or npm package name accepted by your reporter setup. A CLI selection is temporary; it does not rewrite cypress.config.js.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Keep live terminal output and save a machine-readable report

A single reporter generally represents one output strategy. If developers need the familiar spec progress display while CI archives JUnit XML, Cypress documents using cypress-multi-reporters. This is an additional npm dependency, not a built-in flag that turns on every reporter.

Typical arrangement

  1. Install cypress-multi-reporters and the reporter package that will create the artifact, such as mocha-junit-reporter.
  2. Point Cypress’s reporter setting at cypress-multi-reporters.
  3. Create the multi-reporter configuration file described by that package, enabling spec for terminal output and the JUnit reporter for XML.
  4. Give the JUnit reporter a unique per-spec file pattern, then merge files later if your CI publisher expects one report.

Follow the selected package’s exact configuration syntax and compatibility notes. The Cypress example establishes the workflow, but option names and supported versions belong to the individual reporters.

What –quiet does—and does not do

--quiet reduces Cypress’s surrounding standard output. It does not choose a reporter, convert output to JUnit, or remove the reporter’s own terminal lines. To change the summary format, combine the reporter selection with its options:

npx cypress run --quiet --reporter junit --reporter-options "mochaFile=results/test-output-[hash].xml,toConsole=false"

Use this when the CI log should contain as little incidental Cypress text as possible while the XML artifact remains available for a test-results publisher.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Practical setup checklist

  • Confirm that the command is cypress run; reporter configuration is aimed at this run mode.
  • Decide whether the output is for people (spec), a CI parser (junit), TeamCity, or a custom format.
  • Install npm reporters and multi-reporter packages as project dependencies, not only globally.
  • Place options under reporterOptions in configuration or pass them through --reporter-options.
  • Read the selected reporter’s documentation for valid option names.
  • Use [hash] or another supported per-spec naming strategy when several specs produce files.
  • Decide whether the reporter should also print to the terminal, using the reporter’s own option such as JUnit’s toConsole.
  • Check the generated files in CI before enabling a merge or publishing step.

Troubleshoot common failures

The terminal still shows the old summary

Check that you are running cypress run, not a different command, and that the command is using the configuration file you edited. For a one-off test, pass --reporter explicitly. If --quiet is present, remember that reporter output remains by design.

Cypress says it cannot find the reporter

For a package reporter, install the package in the current project and verify the reporter name. For a local reporter, check the relative path from the project and ensure the file exists in the CI checkout. An absolute path that works locally may not exist on the build agent.

The reporter option has no effect

Reporter options are not global Cypress switches. Confirm that the option belongs to the reporter you selected, that the spelling and separators are correct, and that the option is nested under reporterOptions or included in the CLI’s --reporter-options value.

Only one JUnit file remains

A static mochaFile path is being reused while multiple specs run. Add [hash] to the filename, preserve each generated file as a CI artifact, and merge them in a later step if needed.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

JUnit output is missing from the console

Set the JUnit reporter’s toConsole option to true, or use a multi-reporter configuration that includes spec. Writing an XML file and printing a human-readable progress display are separate choices.

A multi-reporter setup fails after an upgrade

Check the installed Cypress version, the multi-reporter package, and every child reporter as a compatible set. These packages have their own release and option requirements; do not assume that a configuration copied from another project remains valid indefinitely.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Performance, reliability and maintenance

Reporter selection usually changes formatting and file output rather than browser test execution. The practical costs are log volume, XML or HTML file creation, dependency maintenance, and any later merge step. Console-heavy reporters can make CI logs harder to search, while file reporters require artifact retention and cleanup policies.

For reliable builds, keep reporter configuration in source control, use deterministic output directories, avoid shared static filenames, and validate the report files as part of the CI job. If a report is consumed by another system, treat that system’s parser and the reporter package as compatibility dependencies when upgrading Cypress.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Or skip the browser setup

If your separate task is capturing a web page—such as a hosted Cypress report or an application screen—you can use ScreenshotNeo instead of maintaining browser automation for that capture. It accepts consent banners before capture and removes more than 60 known consent platforms, newsletter popups and chat widgets; each cleanup step can be disabled. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads and cache hits are not billed, and response headers identify the page verdict and billing result. Its MCP server provides take_screenshot, get_page_info and capture_pdf tools for Claude, Cursor and other MCP clients.

See the ScreenshotNeo API documentation for parameters and response details. A single request returns an image or PDF:

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

The Free plan includes 1,000 screenshots per month with no card. Paid plans start at $5 for 3,000 screenshots, and every feature is available on every plan. Create a free ScreenshotNeo account to get an API key.

Frequently Asked Questions

Will a reporter change the information shown in Cypress Cloud logs?

Cypress Cloud’s recorded-run standard-output logs include spec-level details and summaries according to the reporter selected for that run. The exact appearance therefore follows the reporter configuration rather than a separate Cloud-only summary format.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Do these examples require a particular Cypress release?

No release number is attached to the official examples. Check the current Cypress documentation and the compatibility notes for your installed Cypress and reporter package versions before committing the configuration.

Can a reporter produce both a file and console output?

Yes, when that reporter exposes an option for it; the documented JUnit example uses toConsole: true. Otherwise, use a multi-reporter package to combine terminal and artifact reporters.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.