Basically the same reporter as mocha's xunit reporter, but writes the output to a file.
npm install xunit-file --save-dev
Run mocha with -R xunit-file
or --reporter xunit-file
The xunit.xml output is saved in process.cwd()/xunit.xml
by default.
To change the output and activate terminal output, you can create a config.json
, or use environment variables.
config.json
{
"file" : "${cwd}/xunit.xml",
"consoleOutput" : {
"suite" : true,
"test" : true,
"fail" : false
}
}
environment variables
$ XUNIT_FILE=output/xunit.xml mocha -R xunit-file // writes result to output/xunit.xml
$ LOG_XUNIT=true mocha -R xunit-file // activates terminal output
$ XUNIT_SILENT=true mocha -R xunit-file // disable all terminal output
Set XUNIT_LOG_ENV environment variable, if you want the output process and environment variables in the properties section of the xml file.
$ XUNIT_LOG_ENV=true mocha -R xunit-file
Add the following to the xml report.
<properties>
<property name="process.arch" value="x64"/>
<property name="process.platform" value="win32"/>
<property name="process.memoryUsage" value="[ rss: '26570752', heapTotal: '17734144', heapUsed: '8982088']"/>
<property name="process.cwd" value="D:\Dev\Demo\git\Demo\DemoApp\build\jsTest"/>
<property name="process.execPath" value="D:\Dev\Demo\git\Demo\DemoApp\build\nodeJs\node-v0.11.10-windows-x64\bin\node.exe"/>
<property name="process.version" value="v0.11.10"/>
<property name="process.versions" value="[ http_parser: '2.2', node: '0.11.10', v8: '3.22.24.10', uv: '0.11.17', zlib: '1.2.3', modules: '13', openssl: '1.0.1e']"/>
...
<property name="process.env.NODE_PATH" value="D:\Dev\Demo\git\Demo\DemoApp\build\jsTest\node_modules"/>
<property name="process.env.SUITE_NAME" value="jsTest.myTest"/>
<property name="process.env.XUNIT_FILE" value="D:\Dev\Demo\git\Demo\DemoApp\build\test-results\TEST-jsTest.myTest.xml"/>
<property name="process.env.LOG_XUNIT" value="undefined"/>
</properties>
File Path Options
The file path accepts a few custom tokens to allow creation of dynamic file names. This can be useful for multithreaded testing (such as using a Selenium Grid) or to keep multiple files by timestamp. Tokens are in the following format:
${tokenName: 'Token Data'}
The available tokens are pid
to inject the process id, cwd
to inject the current working directory, and ts
or timestamp
to inject a timestamp.
By default ts
and timestamp
use the ISO 8601 format, ex: 2016-03-31T07:27:48+00:00
. However, if you specify a custom format in the Token Data, the timestamp uses the node dateformat library to output a string in that format.
A full example config.json
is as follows:
{
"file": "${cwd}/${timestamp: 'MMDD-hhmm'}/xunit-${pid}.xml"
}
This would output something like ~/myProject/1217-1507/xunit-1234.xml
. This example would keep copies good for a year without collision, and group multithreaded results by test run.
Tokens can be used in either environment variables or a config.json. The default filepath is always ${cwd}/xunit.xml
.
This reporter is just the original xunit reporter from mocha only writing the result in an xml file.
MIT