Skip to content

About

Convert JUnit reports to CTRF

Resources

Code of conduct

Contributing

Security policy

Stars

13 stars

Watchers

1 watching

Forks

Repository files navigation

Convert JUnit XML to CTRF JSON

Convert JUnit reports to CTRF reports

This package is useful if there isn't a CTRF reporter available for your test framework. It can be used via the CLI or added as a dependency to your project.

💚

CTRF tooling is open source and free to use

You can support the project with a follow and a star

Contributions are very welcome!
Explore more integrations
Let us know your thoughts.

Usage

This package can be used via the CLI or added as a dependency to your project.

CLI Usage

npx junit-to-ctrf path/to/junit.xml

or glob pattern:

npx junit-to-ctrf "test-results/**/*.xml"

As a Dependency

npm install junit-to-ctrf
import { convertJUnitToCTRFReport } from "junit-to-ctrf";

const report = await convertJUnitToCTRFReport("path/to/junit.xml");

API reference

See API reference for more details.

Supported JUnit Types

This package supports the following JUnit XML formats:

  • Standard JUnit XML: Traditional JUnit XML format produced by most testing frameworks
  • Maven Surefire: JUnit XML format including test retries and flaky test detection

Automatically detects the format based on the XML structure.

CLI Options

-o, --output : Output directory and filename for the CTRF report. If not provided, defaults to ctrf/ctrf-report.json.

-t, --tool : Tool name to include in the CTRF report.

-u, --use-suite-name : Use suite name in the test name, defaults to true.

-e, --env : Environment properties to include in the CTRF report. Accepts multiple properties in the format KEY=value.

Examples

Convert a JUnit XML report to the default CTRF report location (ctrf/ctrf-report.json):

npx junit-to-ctrf "test-results/**/*.xml"

Specify Output File

Convert a JUnit XML report to a specified output file:

npx junit-to-ctrf "test-results/**/*.xml" -o ctrf/combined-report.json

Include Tool Name

Convert a JUnit XML report and include a tool name in the CTRF report:

npx junit-to-ctrf path/to/junit.xml -t ExampleTool

Include Environment Properties

Convert a JUnit XML report and include environment properties in the CTRF report:

npx junit-to-ctrf path/to/junit.xml -e appName=MyApp buildName=MyBuild

See CTRF schema for possible environment properties

Exclude Suite Name

npx junit-to-ctrf path/to/junit.xml -u false

Full Command

Combine all options in a single command:

npx junit-to-ctrf path/to/junit.xml -o path/to/output/ctrf-report.json -t ExampleTool -e appName=MyApp buildName=MyBuild

What is CTRF?

CTRF is a universal JSON test report schema that addresses the lack of a standardized format for JSON test reports.

Consistency Across Tools: Different testing tools and frameworks often produce reports in varied formats. CTRF ensures a uniform structure, making it easier to understand and compare reports, regardless of the testing tool used.

Language and Framework Agnostic: It provides a universal reporting schema that works seamlessly with any programming language and testing framework.

Facilitates Better Analysis: With a standardized format, programatically analyzing test outcomes across multiple platforms becomes more straightforward.

Support Us

If you find this project useful, consider giving it a GitHub star ⭐ It means a lot to us.

Development tests

Existing converter regressions and integration smoke remain separate from the standard conformance suites. See Contributing and the conformance suite guide for setup, capabilities and result handling.

About

Convert JUnit reports to CTRF

Resources

Code of conduct

Contributing

Security policy

Stars

13 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages