Produces JUnit-style XML test results.
$ npm install cypress-junit-reporter --save-devor as a global module
$ npm install -g cypress-junit-reporterRun mocha with cypress-junit-reporter:
$ mocha test --reporter cypress-junit-reporterThis 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:
$ MOCHA_FILE=./path_to_your/file.xml mocha test --reporter cypress-junit-reporteror
$ mocha test --reporter cypress-junit-reporter --reporter-options mochaFile=./path_to_your/file.xmlor
var mocha = new Mocha({
reporter: 'cypress-junit-reporter',
reporterOptions: {
mochaFile: './path_to_your/file.xml'
}
});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
<testsuites>
<testsuite>
<properties>
<property name="BUILD_ID" value="4291"/>
</properties>
<testcase/>
<testcase/>
<testcase/>
</testsuite>
</testsuites>
To do so pass them in via env variable:
PROPERTIES=BUILD_ID:4291 mocha test --reporter cypress-junit-reporteror
var mocha = new Mocha({
reporter: 'cypress-junit-reporter',
reporterOptions: {
properties: {
BUILD_ID: 4291
}
}
})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
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.
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 |
<testcase name="should behave like so" classname="Super Suite should behave like so"> |
false (default) |
<testcase name="Super Suite should behave like so" classname="should behave like so"> |
You can also configure the testsuites.name attribute by setting reporterOptions.testsuitesTitle and the root suite's name attribute by setting reporterOptions.rootSuiteTitle.
| 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') |