jstemmer/go-junit-report

GitHub: jstemmer/go-junit-report

Stars: 824 | Forks: 235

# 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](https://github.com/jstemmer/go-junit-report/actions/workflows/main.yml/badge.svg)](https://github.com/jstemmer/go-junit-report/actions) [![Go Reference](https://pkg.go.dev/badge/github.com/jstemmer/go-junit-report/v2.svg)](https://pkg.go.dev/github.com/jstemmer/go-junit-report/v2) [![Go Report Card](https://goreportcard.com/badge/github.com/jstemmer/go-junit-report/v2)](https://goreportcard.com/report/github.com/jstemmer/go-junit-report/v2) ## Install from package (recommended) 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/jstemmer/go-junit-report/v2@latest ## Usage 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 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: - [github.com/jstemmer/go-junit-report/v2/parser/gotest] - [github.com/jstemmer/go-junit-report/v2/junit] ## Changelog ### v2.1.0 - Fix #147: Make timestamps in generated report more accurate. - Fix #140: Escape illegal XML characters in junit output. - Fix #145: Handle build errors in test packages with the `_test` suffix. - Fix #145: Don't ignore build errors that did not belong to a package. - Fix #134: Json test output was not parsed correctly when using the `-race` flag in `go test`. - Add support for `=== NAME` lines introduced in Go1.20 - junit: Add File attribute to `testsuite`. - junit: Allow multiple properties with the same name. - junit: Add the `Testsuites.WriteXML` convenience method. ### v2.0.0
标签:EVTX分析