Awesome
vgt - Visualise Go Tests
<div align="center"> <img src="docs/logo.svg" width="215"> </div>vgt
is a tool for visualising Go test results in a browser.
It's helpful with understanding parallelism of tests and identifying slow tests. More information can be found in our blog post about optimising Go tests parallelism.
<table> <tr style="border: none; text-align: center;"> <td style="border: none"><img src="docs/img3.png" alt="Screenshot 3" width="415"></td> <td style="border: none"><img src="docs/img4.png" alt="Screenshot 4" width="415"></td> </tr> <tr style="border: none; text-align: center;"> <td style="border: none"><img src="docs/img1.png" alt="Screenshot 1" width="415"></td> <td style="border: none"><img src="docs/img2.png" alt="Screenshot 2" width="415"></td> </tr> </table>Installation
go install github.com/roblaszczak/vgt@latest
You can also run without installing by running go run github.com/roblaszczak/vgt@latest
.
Usage
For visualising test results, run go test
with the -json
flag and pipe the output to vgt
.
go test -json ./... | vgt
or with go run
:
go test -json ./... | go run github.com/roblaszczak/vgt@latest
[!WARNING]
When you are piping go tests output tovgt
,vgt
will exit with 1 when tests failed.
or just vgt
with a custom flags after --
to run tests and visualise them:
$ vgt -- ./... -count=1 -short
10:26PM INF Running go test command="[go test -json ./... -count=1 -short]"
After tests were executed, a browser window will open with the visualisation.
If you want to preserve the output, you can pipe test logs to file and later pass it to vgt
:
go test -json ./... > test.json
cat test.json | vgt
Additional flags
Usage of vgt:
-debug
enable debug mode
-dont-pass-output
don't print output received to stdin
-duration-cutoff string
threshold for test duration cutoff, under which tests are not shown in the chart (default "100µs")
-from-file string
read input from file instead of stdin
-keep-running
keep browser running after page was opened
-print-html
print html to stdout instead of opening browser
Development
If you have an idea for a feature or found a bug, feel free to open an issue or a pull request.
Before making a big change, it's a good idea to open an issue to discuss it first.
Running tests
Tests are not really sophisticated, and are based on checking changes in golden files and checking in browser if it looks good.
Updating golden files
If you made a change and want to update golden files, you can run:
go test . -update-golden