Go Tests
Set up test analytics for Go projects.
Everr parses verbose Go test output to track individual test results, detect flaky tests, and analyze failures.
Setup
Run your Go tests with the -v (verbose) flag so that individual test results are printed:
go test -v ./...GitHub Actions workflow example
- name: Run tests
run: go test -v ./...That's it — Everr automatically detects and parses Go test output from workflow logs.
What gets parsed
The parser recognizes the standard Go test verbose output patterns:
| Pattern | Meaning |
|---|---|
=== RUN TestName | Test started |
--- PASS: TestName (0.05s) | Test passed |
--- FAIL: TestName (0.12s) | Test failed |
--- SKIP: TestName (0.00s) | Test skipped |
Subtests
Go subtests (created with t.Run()) are automatically detected via the / separator in test names. For example, TestParser/valid_input is recognized as a subtest of TestParser.
Each subtest becomes its own span with everr.test.is_subtest set to true and everr.test.parent_test pointing to the parent test name. Parent tests that contain subtests also get everr.test.is_suite=true, so a nested Go test can be both a subtest and a suite when it contains further children.
Generated span attributes
| Attribute | Value |
|---|---|
everr.test.name | Full test name (e.g. TestParser/valid_input) |
everr.test.result | pass, fail, or skip |
everr.test.duration_seconds | Duration from the test output |
everr.test.framework | go |
everr.test.package | Go package path |
everr.test.is_suite | true for tests that contain child subtests |
everr.test.is_subtest | true for subtests |
everr.test.parent_test | Parent test name (for subtests) |