What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
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.
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.
#1 Best Overall
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.
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:
Rank #2
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]:
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →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.
Rank #3
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.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Clear out junk files and repair common Windows errors3Scan for outdated or missing drivers - takes under a minuteKeep 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
- Install
cypress-multi-reportersand the reporter package that will create the artifact, such asmocha-junit-reporter. - Point Cypress’s
reportersetting atcypress-multi-reporters. - Create the multi-reporter configuration file described by that package, enabling
specfor terminal output and the JUnit reporter for XML. - 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.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallCrashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteRank #4
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
reporterOptionsin 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.
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.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.
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.
Recommended Free Tools
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.
Quick Recap
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.

