cypress-xml-reporter v1.0.2
Cypress XML Reporter
A JUnit XML reporter for Cypress that includes screenshots, videos, and logs on test failures.
This reporter works with Testspace to publish CI test results that include:
- Captured screenshot of a test failure
- Captured video for a suite with one or more failing tests
- Logs generated using the cypress terminal reporter
Installation
npm install cypress-xml-reporter --save-devRegister the plugin in cypress.config.js:
module.exports = defineConfig({
video: true, // Cypress v13.x defaults to false
e2e: {
setupNodeEvents(on, config) {
require('cypress-xml-reporter/src/plugin') (on);
}
}
});Note that Cypress v13.x defaults the video option to false. This option requires to be true to capture videos for test failures.
Usage
Run Cypress with cypress-xml-reporter:
$ cypress run --reporter cypress_xml_reporterThe generated xml files are by default located at ./results. You may optionally configure a different location by setting the environment variable RESULTS_FOLDER or specifying resultsFolder in the reporterOptions:
$ RESULTS_FOLDER=./path/location cypress run --reporter cypress_xml_reporterOr
$ cypress run --reporter cypress_xml_reporter --reporter-options "resultsFolder=./path/location"Or using cypress.config.js:
module.exports = defineConfig({
video: true, // Cypress v13.x defaults to false
reporter: 'cypress-xml-reporter',
reporterOptions: {
resultsFolder: './path/location'
},
e2e: {
setupNodeEvents(on, config) {
require('cypress-xml-reporter/src/plugin') (on);
}
}
});Terminal Logging
To capture terminal output as log files the Cypress terminal report package is supported:
npm install cypress-terminal-report --save-devThe package is required to be configured for log specs in separate files, setting the type format as txt. And pass in the defined options (i.e. logsOptions) to the reporter plugin:
setupNodeEvents(on, config) {
const logsOptions = {
outputRoot: config.projectRoot + '/cypress/',
outputTarget: {
'logs|txt': 'txt',
}
};
require('cypress-terminal-report/src/installLogsPrinter')(on, logsOptions);
require('cypress-xml-reporter/src/plugin') (on, logsOptions);
}Note that the terminal report requires an extra installation step to register the log collector.