Mochawesome reporter helps you see clear and beautiful test reports after running your Cypress tests.
Mochawesome reporter setup in Cypress
1. Install mochawesome, mochawesome-merge, and mochawesome-report-generator: npm install --save-dev mochawesome mochawesome-merge mochawesome-report-generator 2. Update cypress.config.js to add mochawesome reporter: const { defineConfig } = require('cypress') module.exports = defineConfig({ e2e: { reporter: 'mochawesome', reporterOptions: { reportDir: 'cypress/reports', overwrite: false, html: false, json: true } } })
Make sure to install mochawesome, mochawesome-merge, and mochawesome-report-generator for full reporting features.
Set overwrite: false to keep reports from multiple test runs.
cypress/reports folder.e2e: {
reporter: 'mochawesome',
reporterOptions: {
reportDir: 'cypress/reports',
overwrite: false,
html: false,
json: true
}
}npx mochawesome-report-generator cypress/reports/report.json to generate HTML.npx mochawesome-merge cypress/reports/*.json > cypress/reports/report.jsonThis is a full example of setting up Mochawesome reporter in Cypress config. After running tests, you merge JSON reports, generate the HTML report, and open it to see results.
// cypress.config.js const { defineConfig } = require('cypress') module.exports = defineConfig({ e2e: { reporter: 'mochawesome', reporterOptions: { reportDir: 'cypress/reports', overwrite: false, html: false, json: true }, setupNodeEvents(on, config) { // no special events needed for mochawesome } } }) // Run tests with: // npx cypress run // After tests, merge and generate reports: // npx mochawesome-merge cypress/reports/*.json > cypress/reports/report.json // npx mochawesome-report-generator cypress/reports/report.json // Open the HTML report: cypress/reports/mochawesome-report/mochawesome.html
Always run npx mochawesome-merge cypress/reports/*.json > cypress/reports/report.json and npx mochawesome-report-generator cypress/reports/report.json after tests to combine JSON files and generate the HTML report.
You can customize report folder and options in reporterOptions.
Use the HTML report to easily share test results with your team.
Mochawesome reporter creates clear HTML and JSON test reports for Cypress.
Install mochawesome packages and update cypress.config.js to enable it.
Merge JSON reports and generate HTML after tests to get a complete report.
Practice
mochawesome reporter in Cypress testing?Solution
Step 1: Understand the role of reporters in Cypress
Reporters provide a way to view test results in a readable format after tests run.Step 2: Identify what mochawesome specifically does
Mochawesome generates detailed HTML and JSON reports that are easy to read and share.Final Answer:
To generate clear and detailed HTML and JSON test reports -> Option DQuick Check:
Reporter purpose = Generate reports [OK]
- Thinking mochawesome speeds up tests
- Confusing mochawesome with test data tools
- Assuming mochawesome fixes test failures
cypress.config.js?Solution
Step 1: Recall the correct reporter property name
The reporter is set using the keyreporterwith value 'mochawesome'.Step 2: Use the correct options key for mochawesome
The options for mochawesome are passed underreporterOptions, includingreportDirfor output folder.Final Answer:
reporter: 'mochawesome', reporterOptions: { reportDir: 'cypress/reports' } -> Option AQuick Check:
Correct keys = reporter + reporterOptions [OK]
- Using 'mocha' instead of 'mochawesome'
- Wrong option keys like outputDir or reportPath
- Missing reporterOptions wrapper
cypress.config.js:
reporter: 'mochawesome',
reporterOptions: {
reportDir: 'cypress/reports',
overwrite: false,
html: false,
json: true
}
What will be the result after running tests?Solution
Step 1: Analyze reporterOptions settings
html is set to false, so no HTML report is generated. json is true, so JSON report is generated.Step 2: Understand overwrite behavior
overwrite is false, so new reports will not overwrite existing ones, allowing multiple JSON reports to accumulate.Final Answer:
Only JSON reports will be generated without overwriting previous ones -> Option CQuick Check:
html=false + json=true + overwrite=false = JSON only, no overwrite [OK]
- Assuming HTML report is generated when html=false
- Thinking overwrite=false deletes old reports
- Confusing json and html options
cypress.config.js but after running tests, no report files appear. Which fix is most likely correct?Solution
Step 1: Check if mochawesome packages are installed
Mochawesome requires installing bothmochawesomeandmochawesome-mergepackages to generate and merge reports.Step 2: Verify config and installation
Without these packages installed, no reports will be created even if config is correct.Final Answer:
Install mochawesome and mochawesome-merge packages and update config -> Option BQuick Check:
Missing packages = no reports [OK]
- Removing reporterOptions thinking it fixes issue
- Changing reporter to 'mocha' which doesn't generate mochawesome reports
- Using wrong CLI flags like --no-report
Solution
Step 1: Understand mochawesome report generation
Mochawesome generates separate JSON reports per test run; it does not merge automatically.Step 2: Use mochawesome-merge tool
mochawesome-merge combines multiple JSON reports into one, which can then be converted to a single HTML report.Step 3: Confirm other options are incorrect
overwrite: true overwrites reports, no auto-merge; 'mochawesome-merge' is not a reporter; manual copying is error-prone.Final Answer:
Use mochawesome-merge to combine JSON reports, then generate HTML from merged JSON -> Option AQuick Check:
Merge JSON then generate HTML = combined report [OK]
- Expecting mochawesome to auto-merge reports
- Setting reporter to 'mochawesome-merge' which is not valid
- Manually copying JSON files without merging
Ready to prove it?
Pass the test and this pattern moves unknown
