gotestsum

command module
v0.3.1 Latest Latest
Warning

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

Go to latest
Published: Aug 4, 2018 License: Apache-2.0 Imports: 13 Imported by: 0

README

gotestsum

gotestsum runs tests, prints friendly test output and a summary of the test run. Requires Go 1.10+.

Install

Download a binary from releases, or get the source with go get gotest.tools/gotestsum (you may need to run dep ensure).

Demo

Demo

Docs

GoDoc CircleCI Go Reportcard

gotestsum works by running go test --json ./... and reading the JSON output.

TOC
Format

Set a format with the --format flag or the GOTESTSUM_FORMAT environment variable.

gotestsum --format short-verbose

The supported formats are:

  • dots - output one character per test.
  • short (default) - output a line for each test package.
  • standard-quiet - the default go test format.
  • short-verbose - output a line for each test and package.
  • standard-verbose - the standard go test -v format.

Have a suggestion for some other format? Please open an issue!

Summary

After the tests are done a summary of the test run is printed. The summary includes:

  • A count of the tests run, skipped, failed, build errors, and elapsed time.
  • Test output of all failed and skipped tests, and any build errors.

To disable parts of the summary use --no-summary section.

Example: hide skipped tests in the summary

gotestsum --no-summary=skipped

Example: hide failed and skipped

gotestsum --no-summary=skipped,failed
JUnit XML

In addition to the normal test output you can write a JUnit XML file for integration with CI systems. Write a file using the --junitfile flag or the GOTESTSUM_JUNITFILE environment variable.

gotestsum --junitfile unit-tests.xml
JSON file output

In addition to the normal test output you can write a line-delimited JSON file with all the test2json output that was written by go test --json. This file can be used to calculate statistics about the test run.

gotestsum --jsonfile test-output.log
Custom go test command

By default gotestsum runs go test --json ./.... You can change this by specifying additional positional arguments after a --. You can change just the test directory value (which defaults to ./...) by setting the TEST_DIRECTORY environment variable.

You can use --debug to echo the command before it is run.

Example: set build tags

gotestsum -- -tags=integration ./...

Example: run only a single package

gotestsum -- ./io/http

Example: enable coverage

gotestsum -- -coverprofile=cover.out ./...

Example: run a script instead of go test

gotestsum --raw-command -- ./scripts/run_tests.sh

Note: when using --raw-command you must ensure that the stdout produced by the script only contains the test2json output. Any stderr produced will be considered an error (to match the behaviour of go test --json).

Example: using TEST_DIRECTORY

TEST_DIRECTORY=./io/http gotestsum
Run tests when a file is modified

filewatcher will automatically set the TEST_DIRECTORY environment variable which makes it easy to integrate gotestsum.

Example: run tests for a package when any file in that package is saved

filewatcher gotestsum

Thanks

This package is heavily influenced by the pytest test runner for python.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
junitxml
Package junitxml creates a JUnit XML report from a testjson.Execution.
Package junitxml creates a JUnit XML report from a testjson.Execution.

Jump to

Keyboard shortcuts

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