go-junit-report

module
v0.0.0-...-8a14185 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 16, 2025 License: MIT

README

go-junit-report

go-junit-report is a tool that converts go test output to a JUnit compatible XML report, suitable for use with applications such as Jenkins.

Build status Go Reference Go Report Card

Pre-built packages for Windows, macOS and Linux are found on the Releases page.

Install from source

Download and install the latest stable version from source by running:

go install github.com/joschi/go-junit-report/v2@latest

Usage

By default, go-junit-report reads go test -v output generated by the standard library testing package from stdin and writes a JUnit XML report to stdout.

Go build and runtime errors are also supported, but this requires that stderr is redirected to go-junit-report as well.

Typical use looks like this:

go test -v 2>&1 ./... | go-junit-report -set-exit-code > report.xml
More examples

JSON produced by go test -json is supported by the gojson parser. Note that stderr still needs to be redirected to go-junit-report in order for build errors to be detected. For example:

go test -json 2>&1 | go-junit-report -parser gojson > report.xml

Full example, where Go test result is parsed as JSON, the test execution output is printed as part of go-junit-report and the step fails in case of test failure.

go test -json ./... 2>&1 | go-junit-report -set-exit-code -parser gojson -iocopy -out report.xml

Go benchmark output is also supported. The following example runs benchmarks for the package in the current directory and uses the -out flag to write the output to a file called report.xml.

go test -v -bench . -count 5 2>&1 | go-junit-report -out report.xml

The -iocopy flag copies stdin directly to stdout, which is helpful if you want to see what was sent to go-junit-report. The following example reads test input from a file called tests.txt, copies the input to stdout and writes the output to a file called report.xml.

go-junit-report -in tests.txt -iocopy -out report.xml
Flags

Run go-junit-report -help for a list of all supported flags.

Flag Description
-in file read go test log from file
-iocopy copy input to stdout; can only be used in conjunction with -out
-no-xml-header do not print xml header
-out file write XML report to file
-package-name name specify a default package name to use if output does not contain a package name
-parser parser specify the parser to use, available parsers are: gotest (default), gojson
-p key=value add property to generated report; properties should be specified as key=value
-set-exit-code set exit code to 1 if tests failed
-subtest-mode set subtest mode, modes are: ignore-parent-results, exclude-parents
-version print version and exit

Go packages

The test output parser and JUnit XML report generator are also available as Go packages. This can be helpful if you want to use the go test output parser or create your own custom JUnit reports for example. See the package documentation on pkg.go.dev for more information:

Changelog

See CHANGELOG.md.

Contributing

See CONTRIBUTING.md.

Directories

Path Synopsis
cmd
go-junit-report command
go-junit-report converts `go test` output to a JUnit compatible XML report.
go-junit-report converts `go test` output to a JUnit compatible XML report.
Package gtr defines a standard test report format and provides convenience methods to create and convert reports.
Package gtr defines a standard test report format and provides convenience methods to create and convert reports.
internal
Package junit defines a JUnit XML report and includes convenience methods for working with these reports.
Package junit defines a JUnit XML report and includes convenience methods for working with these reports.
parser
gotest
Package gotest is a standard Go test output parser.
Package gotest is a standard Go test output parser.
gotest/internal/collector
Package collector collects output lines grouped by id and provides ways to retrieve and merge output ordered by the time each line was added.
Package collector collects output lines grouped by id and provides ways to retrieve and merge output ordered by the time each line was added.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL