DEV.co
Open-Source Testing · mfridman

tparse

tparse is a lightweight CLI tool that transforms Go's verbose test output into a clean, organized summary. It parses JSON-formatted test results and highlights failures, passes, and panics in color-coded tables, making test result analysis faster in CI/CD pipelines.

Source: GitHub — github.com/mfridman/tparse
1.3k
GitHub stars
37
Forks
Go
Primary language
MIT
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
Repositorymfridman/tparse
Ownermfridman
Primary languageGo
LicenseMIT — OSI-approved
Stars1.3k
Forks37
Open issues25
Latest releasev0.18.0 (2025-08-24)
Last updated2025-11-27
Sourcehttps://github.com/mfridman/tparse

What tparse is

tparse consumes JSON output from `go test -json`, parses the event stream, and renders human-readable summaries grouped by package with elapsed times. It supports pipe-friendly operation, file-based input, and multiple output modes (failures only, all tests, raw output passthrough).

Quickstart

Get the tparse source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/mfridman/tparse.gitcd tparse# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

CI/CD Pipeline Test Reporting

Integrate into GitHub Actions, GitLab CI, or Jenkins to provide developers with concise, color-coded test summaries instead of raw logs. Improves readability in build artifacts and job output.

Local Development Workflow

Pipe `go test` output directly to tparse in shell scripts or Makefiles to get instant, organized feedback on test results without scrolling through verbose output.

Multi-Package Project Testing

When running tests across dozens of Go packages, tparse's package-level grouping and sorting by elapsed time helps identify slow tests and failed packages at a glance.

Implementation considerations

  • Requires Go 1.x environment to build/install; binaries are self-contained and have no runtime dependencies.
  • Must be used with `go test -json` flag; standard `go test` output is not JSON and will not parse correctly.
  • Output is text-based and designed for terminal display; piping to log aggregation systems may require format conversion.
  • Set shell error handling (e.g., `set -o pipefail` in bash) to ensure test failures exit with non-zero status in CI/CD.
  • Performance is negligible for typical test suites; parsing and rendering overhead is sub-second for hundreds of tests.

When to avoid it — and what to weigh

  • Requires Structured Test Reporting Beyond JSON — If you need JUnit XML, Allure, or other specialized test report formats, tparse outputs only human-readable text or JSON; conversion would require additional tooling.
  • Non-Go Test Environments — tparse is designed solely for Go's test output format. Projects using other languages or test runners will find no value.
  • Complex Test Dashboarding Needs — tparse is a CLI summary tool, not a test dashboard or analytics platform. Organizations needing historical trends, test flakiness detection, or cross-build comparisons should evaluate dedicated test analytics tools.
  • Minimal or No-Test Projects — Projects with very few or no automated tests derive minimal benefit; overhead is negligible but the tool adds no value if tests are sparse.

License & commercial use

MIT License: permissive, allows commercial use, modification, and distribution with minimal restrictions. Requires attribution in distributions.

MIT is a well-recognized OSI-approved permissive license. Commercial use, inclusion in proprietary CI/CD systems, and redistribution are explicitly allowed. No commercial restrictions identified.

DEV.co evaluation signals

Editorial assessment — not user reviews. Directional, with an explicit confidence level.

SignalAssessment
MaintenanceActive
DocumentationAdequate
License clarityClear
Deployment complexityLow
DEV.co fitGood
Assessment confidenceHigh
Security considerations

tparse processes JSON input from `go test` output; no network calls, database access, or privilege escalation. Runs as unprivileged CLI tool. No known CVEs or security advisories in provided data. As with any CLI tool, verify binary provenance when downloading pre-built releases.

Alternatives to consider

gotestsum (golang-ci/gotestsum)

More feature-rich test summary tool with additional report formats (JSON, Teamcity), test filtering, and watch mode. Heavier than tparse but broader customization.

Builtin go test -v output + grep/awk

Zero dependency approach using shell utilities. Lightweight but requires custom scripting; lacks visual formatting and package grouping that tparse provides out-of-box.

Dedicated CI/CD Test Analytics (e.g., Buildkite Test Analytics, CloudBees Test Summary)

Full-featured platforms for test trend analysis, flakiness detection, and historical dashboards. Overkill for simple local/CI summary needs but necessary for enterprise test observability.

Software development agency

Build on tparse with DEV.co software developers

Add tparse to your CI/CD pipeline or local workflow to replace verbose test output with clean, actionable summaries. Install in seconds with `go install github.com/mfridman/tparse@latest`.

Talk to DEV.co

Related open-source tools

Surfaced by semantic similarity across the DEV.co open-source index.

Related on DEV.co

Explore the category and the services that help you build with it.

tparse FAQ

Does tparse modify or filter my actual test results?
No. tparse only parses and reformats the JSON output for display. Using `-follow` flag mirrors the raw output as well. Test results are unchanged.
Can I use tparse without modifying my existing test commands?
You must add the `-json` flag to `go test` for tparse to work. For example: `go test ./... -json | tparse`. Standard output without `-json` will not parse.
What happens if a test times out or panics?
tparse captures and displays panics and failures in the summary. Timeouts (test failures) are treated as failures and shown in the output.
Is tparse suitable for large monorepos with hundreds of packages?
Yes. tparse groups results by package and sorts by elapsed time, making it practical for large test suites. No documented performance issues for typical use.

Custom software development services

DEV.co is a software development agency delivering custom software development services to companies building on open source. Our software developers and web developers design, integrate, and ship production systems — spanning web development, APIs, AI, data, and cloud. If tparse is part of your open-source testing roadmap, our team can implement, customize, migrate, and maintain it.

Streamline Your Go Test Reporting

Add tparse to your CI/CD pipeline or local workflow to replace verbose test output with clean, actionable summaries. Install in seconds with `go install github.com/mfridman/tparse@latest`.