A command-line tool that formats Go test results as readable sentences to encourage literate test naming.
gotestdox is a command-line tool for Go that transforms camel-case test names into readable sentences, making test output more understandable and encouraging developers to write descriptive test names. It runs Go tests and presents results in a documentation-like format, inspired by the testdox concept from behavior-driven development.
Go developers and teams who want to improve the readability of their test output and use tests as documentation, particularly those practicing or interested in behavior-driven development (BDD) principles.
Developers choose gotestdox because it automatically converts technical test names into plain English sentences, making test results easier to read and discuss with non-technical stakeholders. Its simplicity and focus on encouraging literate test names differentiate it from standard Go test runners.
A tool for formatting Go test results as readable documentation
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Converts camel-case test names into plain English sentences, making test results easier to read and discuss with non-technical stakeholders, as shown in the demo converting 'TestValidIsTrueForValidInputs' to 'Valid is true for valid inputs'.
Uses green check marks and red x marks with automatic terminal color detection via the color library, enhancing visual feedback without manual configuration.
Accepts any arguments passed to `go test`, supports multiple packages with `./...`, and can filter stdin from `go test -json`, ensuring seamless integration into existing workflows.
Handles multi-word function names by using underscores as hints, correctly parsing tests like 'TestHandleInput_ClosesInputAfterReading' into 'HandleInput closes input after reading'.
Only processes test events, excluding benchmarks and examples from output, which limits comprehensive reporting for projects dependent on these test types.
Requires test names to follow camel-case with underscores for multi-word functions, introducing ambiguity and reliance on naming conventions that may not be universally adopted.
Adds an extra step to the testing workflow compared to built-in Go tools, which could complicate CI/CD setups or introduce overhead for simple projects.