/azlo-test-suite

A test suite for Golang, that visualizes test coverage. Meant to be run on screen 2 when writing unit tests.

Primary LanguageGo

๐Ÿงช Azlo Test Suite

A beautiful, real-time Go testing dashboard with comprehensive coverage visualization
Part of the professional development tools from Azlo.pro

Go Version WebSocket Coverage Dark Theme

Hey! So, check this out. I made a thing.

The Problem I Got Tired Of

Before: Jumping between the terminal, a browser tab for coverage, and my code editor just to see if my tests passed. It's clunky and kills the flow.

After: One clean dashboard. You see test results pop up in real-time. You can explore your code coverage interactively. It just works.


โœจ What It Actually Does

๐Ÿš€ Real-Time Everything

Powered by WebSockets, you see tests pass or fail the second they're done. No more waiting. It finds all your test packages automatically and tells you how long they took to run.

๐Ÿ“Š See Your Coverage Two Ways

  • An Interactive Explorer to click through files and see covered lines.
  • The standard Go HTML Report, but styled with a proper dark theme so it doesn't burn your eyes out.
  • You get a clear coverage score, color-coded so you know if you're doing good (green's the goal!).

๐ŸŽจ A UI That's Actually Nice to Look At

Clean, dark theme. It's designed for people who spend hours looking at code.

๐Ÿ“ It Just Works

Pick your Go project folder, and you're off. Doesn't matter how your project is structured.


๐Ÿš€ Getting Started

Prerequisites:

  • Go 1.24+
  • A Go project with some *_test.go files.

Let's Go:

  1. Clone the thing:

    git clone <repository-url> azlo-test-suite
    cd azlo-test-suite
  2. Install the stuff it needs:

    go mod tidy
  3. Run it:

    go run main.go
  4. Open http://localhost:8484 in your browser.

Stick the dashboard on a second monitor while you code. Write a test, save the file, and watch the coverage percentage go up. It's a great feeling.


๐Ÿ“Š What You'll See

Project Info Bar

Shows your current project name and path - always know which project you're testing.

Stats Overview

  • Overall Coverage: Project-wide coverage with color coding (green โ‰ฅ80%, yellow 60-79%, red <60%)
  • Total Packages: Number of packages with tests
  • Passed/Failed: Quick status overview

Package Results

Each package shows:

  • Status: Green border (passed) or red border (failed)
  • Coverage Badge: Color-coded percentage
  • Duration: How long tests took
  • Expandable Details: Click to see full test output

Coverage Options

For packages with coverage:

  • ๐Ÿ“Š View Coverage: Interactive file browser with line-by-line highlighting
  • ๐Ÿ“‹ HTML Report: Go's native coverage report (opens in new tab)

๐Ÿ› ๏ธ How It's Built

I love to orchestrate systems and see them run smoothly. This is no different.

Backend (Go)

Just pure Go with Gorilla WebSocket for the real-time magic and Mux for handling requests. It calls the go test and go tool cover commands you already use.

Frontend (Vanilla JS)

No heavy frameworks. Just simple, clean JavaScript that talks to the backend and makes everything look good.

Privacy-First

This runs entirely on your machine. No data goes anywhere. No tracking. That's a big deal for me.


๐ŸŽฏ Usage Tips

Daily Workflow

  1. Keep it visible on a second monitor or split screen
  2. Write tests incrementally and watch coverage improve
  3. Use HTML reports for deep coverage analysis
  4. Set coverage goals - aim for those green badges
  5. Monitor test speed to catch slow tests early

Team Stuff

  • Code Reviews: Share HTML coverage reports
  • CI/CD: Validate coverage before deployment
  • Onboarding: Help new people understand test coverage

๐Ÿ”ง Configuration

Custom Port

# Different port if 8484 is busy
PORT=3000 go run main.go

Project Structure

Works with any Go layout. Whether you've got:

your-project/
โ”œโ”€โ”€ go.mod
โ”œโ”€โ”€ main.go
โ”œโ”€โ”€ pkg/
โ”‚   โ””โ”€โ”€ something/
โ”‚       โ”œโ”€โ”€ code.go
โ”‚       โ””โ”€โ”€ code_test.go
โ””โ”€โ”€ internal/
    โ””โ”€โ”€ stuff/
        โ”œโ”€โ”€ more.go
        โ””โ”€โ”€ more_test.go

It'll find your tests and run them.


๐Ÿšจ If Things Break

No packages found?

  • Make sure you have *_test.go files
  • Check that go test works from the command line

Coverage not showing?

  • Verify your tests actually run code
  • Try go test -cover manually first

Can't connect?

  • Port 8484 might be busy - try PORT=9090 go run main.go
  • Check the console for error messages

Project path issues?

  • Use the full path to your project
  • Make sure there's a go.mod file or .go files in the directory

๐Ÿ’ก Why I Made This

Because I wanted it. It's a tool built to solve a problem that was bugging me, designed with the same problem-solving energy I put into Azlo.pro.

At Azlo.pro, I build custom automation and high-performance backends that eliminate manual work. This dashboard scratches the same itch - taking something tedious (checking test results) and making it smooth and enjoyable.

It's about creating things that are not only functional but also a pleasure to use. I'm the "glass half full" type, and I believe our tools should reflect that.

Built with ADHD-powered focus and a love for elegant systems. I hope you find it useful!


๐Ÿค Questions? Issues?

Fork it, mess with it, make it your own. If you get stuck, open an issue on GitHub or shoot me an email: christian.nielsen@azlo.pro


Stop context-switching between terminal and browser.
Let the dashboard do the work.