Skip to content

agracio/mochawesome-converter

Repository files navigation

Test report files to Mochawesome and JUnit converter

Actions Status Codacy Badge Git Issues Closed Issues

Overview

  • Convert your XML/TRX test report files to Mochawesome JSON/HTML for easy viewing and troubleshooting.
  • Convert test report files to JUnit format.
  • Convert JUnit to HTML using Mochawesome.

Supported report formats

  • JUnit/xUnit XML Format
  • NUnit 3.0+ XML Format
  • xUnit.net v2+ XML Format
  • Visual Studio TRX Format

What is Mochawesome

Mochawesome is a custom test reporter originally designed for Mocha Javascript testing framework. It features a clean modern interface allowing users to easily view and navigate test runs.
https://github.com/adamgruber/mochawesome

Mochawesome Report

List of supported features

  • Simple, clean, and modern design
  • Per suite charts (via ChartJS)
  • Stack trace for failed tests
  • Support for displaying context information
  • Filters to display only the tests you want
  • Responsive and mobile-friendly
  • Offline viewing

Features not supported by converter

  • Support for test and suite nesting
  • Displays before and after hooks
  • Review test code inline

Conversion process

  • All test reports except JUnit are first converted to JUnit format using XSLT.
  • TRX files undergo additional processing to enhance JUnit output.
  • Set junit option to true to get JUnit conversion results.

All test types

  • Converts <skipped> test messages to Mochawesome test context values.
  • Converts <properties>, <system-out> and <system-err> to Mochawesome context values.
  • Converts <failure> and <error> elements to Mochawesome error stack.
  • Tests suites without any tests are excluded from Mochawesome and JUnit.
  • Attachments are not supported.

JUnit

  • Converts <properties>, <system-out> and <system-err> elements to Mochawesome test context.
  • Nested test suites only supported when using transformJunit: true option. This will flatten nested test suites.

NUnit

  • NUnit XML version 3 and higher is supported.
  • Converts <properties> elements to JUnit <properties>.
  • Converts <output> elements to JUnit <system-out>.

xUnit.net

  • xUnit.net v2+ XML is supported.
  • Converts <traits> elements to to JUnit <properties>.
  • Converts test <reason> elements to JUnit <skipped>.
  • Supports single <assembly> per file, if multiple assemblies are present only first will be converted.

Visual Studio TRX

  • Converts Output/ErrorInfo/Message to JUnit <failure> message.
  • Converts Output/ErrorInfo/StackTrace to JUnit <failure> stack trace.
  • Converts Output/StdErr to JUnit <system-err>.
  • Converts Output/StdOut to JUnit <system-out>.
  • Converts Inconclusive and NotExecuted tests to <skipped> with message.
  • Test suites are split into multiple <testsuite> elements by test classname.
  • Tests are ordered by name.
  • Test suit times are not 100% accurate - displayed as a sum() of all test times.

Usage

npm i --save-dev mochawesome-converter
const convert = require('mochawesome-converter');

let options = {
    testFile: 'mytesfiles/nunit.xml',
    testType: 'nunit',
    junit: true
}

convert(options).then(() => console.log(`Mochawesome report created`));

Options

Option Type Default Description
testFile (required) string Path to test file for conversion
testType (required) string Test report type
reportDir string ./report Converted report output path
reportFilename string mochawesome.json Mochawesome report name
junit boolean false Create JUnit report?
junitReportFilename string testFile.name-junit.xml JUnit report file name
transformJunit boolean false Transform JUnit test file with nested test suites
html boolean false Create Mochawesome HTML?
htmlReportFilename string mochawesome.html Mochawesome HTML file name
skippedAsPending boolean true Show skipped tests as pending in Mochawesome
switchClassnameAndName boolean false Switch test case classname and name
  • testFile - relative or absolute path to input test file.
  • testType - type of test report, not case-sensitive.
  • reportDir - will be created if path does not exist.
  • skippedAsPending - Mocha always reports skipped tests as pending and this is default behaviour of converter. Set to false to display tests as skipped.
  • switchClassnameAndName - Switches classname and name attributes of testcase if your test naming data is generated in reverse order.
  • transformJunit - Uses XSLT processor to flatten any nested JUnit test suites. Setting junit: true will produce processed JUnit file.

Supported testType options.

testType File Type
JUnit JUnit/xUnit
NUnit NUnit 3.0+ XML
xUnit xUnit.net v2+ XML
TRX Visual Studio TRX

About

Convert XML/TRX test reports to HTML (Mochawesone) and JUnit

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published