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.
go install github.com/roblaszczak/vgt@latest
You can also run without installing by running go run github.com/roblaszczak/vgt@latest
.
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 to vgt
, 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
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
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.
Tests are not really sophisticated, and are based on checking changes in golden files and checking in browser if it looks good.
If you made a change and want to update golden files, you can run:
go test . -update-golden