A JUnit reporter for mocha.
npm install cypress-junit-reporter
Produces JUnit-style XML test results.
``shell`
$ npm install cypress-junit-reporter --save-dev
or as a global module
`shell`
$ npm install -g cypress-junit-reporter
:`shell
$ mocha test --reporter cypress-junit-reporter
`
This will output a results file at ./test-results.xml.
You may optionally declare an alternate location for results XML file by setting
the environment variable MOCHA_FILE or specifying mochaFile in reporterOptions:`shell
$ MOCHA_FILE=./path_to_your/file.xml mocha test --reporter cypress-junit-reporter
`
or
`shell
$ mocha test --reporter cypress-junit-reporter --reporter-options mochaFile=./path_to_your/file.xml
`
or
`javascript
var mocha = new Mocha({
reporter: 'cypress-junit-reporter',
reporterOptions: {
mochaFile: './path_to_your/file.xml'
}
});
`$3
You can also add properties to the report under
testsuite. This is useful if you want your CI environment to add extra build props to the report for analytics purposes`
`To do so pass them in via env variable:
`shell
PROPERTIES=BUILD_ID:4291 mocha test --reporter cypress-junit-reporter
`
or
`javascript
var mocha = new Mocha({
reporter: 'cypress-junit-reporter',
reporterOptions: {
properties: {
BUILD_ID: 4291
}
}
})
`$3
Results XML filename can contain
[hash], e.g. ./path_to_your/test-results.[hash].xml. [hash] is replaced by MD5 hash of test results XML. This enables support of parallel execution of multiple cypress-junit-reporter's writing test results in separate files.In order to display full suite title (including parents) just specify
testsuitesTitle option
`javascript
var mocha = new Mocha({
reporter: 'cypress-junit-reporter',
reporterOptions: {
testsuitesTitle: true,
suiteTitleSeparatedBy: '.' // suites separator, default is space (' ')
}
});
`If you want to switch classname and name of the generated testCase XML entries, you can use the
testCaseSwitchClassnameAndName reporter option.`javascript
var mocha = new Mocha({
reporter: 'cypress-junit-reporter',
reporterOptions: {
testCaseSwitchClassnameAndName: true
}
});
`Here is an example of the XML output when using the
testCaseSwitchClassnameAndName option:| value | XML output |
|----------------------------------|--------|
|
true | |
| false (default) | |You can also configure the
testsuites.name attribute by setting reporterOptions.testsuitesTitle and the root suite's name attribute by setting reporterOptions.rootSuiteTitle.$3
| Parameter | Effect |
| --------- | ------ |
| mochaFile | configures the file to write reports to |
| includePending | if set to a truthy value pending tests will be included in the report |
| properties | a hash of additional properties to add to each test suite |
| toConsole | if set to a truthy value the produced XML will be logged to the console |
| useFullSuiteTitle | if set to a truthy value nested suites' titles will show the suite lineage |
| suiteTitleSeparedBy | the character to use to separate nested suite titles. (defaults to ' ') |
| testCaseSwitchClassnameAndName | set to a truthy value to switch name and classname values |
| rootSuiteTitle | the name for the root suite. (defaults to 'Root Suite') |
| testsuitesTitle | the name for the
testsuites` tag (defaults to 'Mocha Tests') |