CLI tool for analyzing and summarizing go test output. Pipe friendly. CI/CD friendly.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
parse Add staticcheck and fix issues Jan 5, 2019
version
.goreleaser.yml Fixes #14; bake version into go releaser Oct 30, 2018
.travis.yml Fixes #28 Dec 17, 2018
LICENSE Create LICENSE (#1) Oct 19, 2018
Makefile Update makefile Jan 5, 2019
README.md Updates readme Nov 25, 2018
go.mod Go mod patch update Jan 5, 2019
go.sum Go mod patch update Jan 5, 2019
main.go

README.md

tparse Build Status Coverage

A command line tool for analyzing and summarizing go test output.

Don't forget to run go test with the -json flag.

Pass Fail

By default, tparse will always return test failures and panics, if any, followed by a package-level summary table.

To get additional info on passed tests run tparse with -pass flag. Tests are grouped by package and sorted by elapsed time in descending order (longest to shortest).

But why?! for more info.

Installation

go get github.com/mfridman/tparse

Or download the latest pre-built binary here.

Usage

Once tparse is installed there are 2 ways to use it:

  1. Run go test as normal, but add -json flag and pipe output to tparse.
go test fmt -json | tparse -all
  1. Save the output of go test with -json flag into a file and call tparse with filename as an argument.
go test fmt -json > fmt.out
tparse -all fmt.out

Tip: run tparse -h to get usage and options.

But why?!

go test is awesome, but a bit verbose. Sometimes one just wants failures, grouped by package, printed with a dash of color and bubbled to the top.

tparse attempts to do just that; return failed tests and panics, if any, followed by a single package-level summary.

But, let's take it a bit further. With -all (-pass and -skip combined) can get additional info, such as which tests were skipped and elapsed time of each passed test.

tparse comes with a -dump flag to replay everything that would have otherwise been printed. Enabling users to retrieve original go test output. Eliminating the need for tee /dev/tty between pipes.

The default print order is:

  • go test output (if adding -dump flag)
  • passed/skipped table (if adding -all, -skip or -pass flag)
  • failed tests and panics
  • summary

The default print order can be reversed with -top flag.

For narrow displays the -smallscreen flag may be useful, dividing a long test name and making it vertical heavy:

TestSubtests/an_awesome_but_long/subtest_for_the/win

TestSubtests
 /an_awesome_but_long
 /subtest_for_the
 /win

tparse aims to be a simply alternative to one-liner bash functions.


P.S. tparse uses itself in the travis pipeline: