A project aimed at making it easier to build Jenkins compatible XML based JUnit reports.
To install the latest version, run:
npm install junit-report-builder --save
import builder from 'junit-report-builder';
// Create a test suite
let suite = builder.testSuite().name('My suite');
// Create a test case
let firstTestCase = suite.testCase()
  .className('my.test.Class')
  .name('My first test');
// Create another test case which is marked as failed
let secondTestCase = suite.testCase()
  .className('my.test.Class')
  .name('My second test')
  .failure();
builder.writeTo('test-report.xml');This will create test-report.xml containing the following:
<?xml version="1.0" encoding="UTF-8"?>
<testsuites tests="2" failures="1" errors="0" skipped="0">
  <testsuite name="My suite" tests="2" failures="1" errors="0" skipped="0">
    <testcase classname="my.test.Class" name="My first test"/>
    <testcase classname="my.test.Class" name="My second test">
      <failure/>
    </testcase>
  </testsuite>
</testsuites>If you want to create another report file, start by getting a new builder instance like this:
// Each builder produces a single report file
let anotherBuilder = builder.newBuilder();CommonJS is also supported:
let builder = require('junit-report-builder');Please refer to the e2e.spec.ts for more details on the usage.
- Change 
markdown-doctestfrom a dependency to a dev dependency. 
- Add support for multiline properties, where the value is stored as text content instead of in the 
valueattribute. Thanks to Sebastian Sauer. 
- A re-release of 4.0.1 since that version broke the CommonJS API.
 - Remove an internal type from the public API.
 
- Deprecated, since the CommonJS API was accidentally changed in 4.0.1. Re-released as 5.0.0.
 - Re-introduce CommonJS support, while keeping the ES module support. Thanks to Harel Mazor and Simeon Cheeseman.
 - Export all public types from 
index.d.ts. Thanks to Harel Mazor and Simeon Cheeseman. - Full typing support for TypeScript. Thanks to Harel Mazor.
 
- Deprecated, since the CommonJS support was accidentally dropped. This is fixed again in 4.0.1.
 - Dropped support for node.js 14, 12, 10 and 8.
 - Full typing support for TypeScript. Thanks to Harel Mazor.
 
- Update documentation.
 
- Support name and test count attributes for the root test suites element. Thanks to Simeon Cheeseman.
 - Describe parameter types and return types with JSDoc. Thanks to Simeon Cheeseman.
 
- Add support for generic properties for test cases. Thanks to Pietro Ferrulli.
 - Bump dependencies
 
- Bump dependencies: lodash, make-dir, date-format, minimist
 
- Properly prevent invalid characters from being included in the XML files.
 - Dropped support for node.js 4 and 6
 
- Added support for adding a 
fileattribute to a test case. Thanks to Ben Holland. 
- Replace mkdirp by make-dir to resolve npm advisory 1179.
 - Dropped support for node.js 0.10.x and 0.12.x
 
- Updated lodash to a version without known vulnerabilities.
 
- Added support for emitting the type attribute for error and failure elements of test cases
 - Added support for emitting cdata/content for the error element of a test case
 
Thanks to Robert Turner.
- Update dependencies to versions without known vulnerabilities.
 
- Support attaching files to tests. Thanks to anto-wahanda.
 
- Support creating XML with emojis. Thanks to ischwarz.
 
- Changed 
date-formatto be a dependency. Previously it was incorrectly set to be a devDependency. Thanks to georgecrawford. 
- Added attributes for test count, failure count, error count and skipped test count to testsuite elements
 - Added ability to attach standard output and standard error logs to test cases
 - Added ability set execution time for test suites
 - Added ability set timestamp for test suites
 
- Simplified API by making the index module export a builder instance
 
- Corrected example in readme
 
- Initial release