Testing - Awesome Go
Libraries for testing codebases and generating test data.
- apitest - Simple and extensible behavioural testing library for REST based services or HTTP handlers that supports mocking external http calls and rendering of sequence diagrams.
- arch-go - Architecture testing tool for Go projects.
- assert - Basic Assertion Library used along side native go testing, with building blocks for custom assertions.
- baloo - Expressive and versatile end-to-end HTTP API testing made easy.
- be - The minimalist generic test assertion library.
- biff - Bifurcation testing framework, BDD compatible.
- charlatan - Tool to generate fake interface implementations for tests.
- commander - Tool for testing cli applications on windows, linux and osx.
- cupaloy - Simple snapshot testing addon for your test framework.
- dbcleaner - Clean database for testing purpose, inspired by database_cleaner in Ruby.
- dft - Lightweight, zero dependency docker containers for testing (or more).
- dsunit - Datastore testing for SQL, NoSQL, structured files.
- embedded-postgres - Run a real Postgres database locally on Linux, OSX or Windows as part of another Go application or test.
- endly - Declarative end to end functional testing.
- envite - Dev and testing environment management framework.
- fixenv - Fixture manage engine, inspired by pytest fixtures.
- fluentassert - Extensible, type-safe, fluent assertion Go library.
- flute - HTTP client testing framework.
- frisby - REST API testing framework.
- gherkingen - BDD boilerplate generator and framework.
- ginkgo - BDD Testing Framework for Go.
- gnomock - integration testing with real dependencies (database, cache, even Kubernetes or AWS) running in Docker, without mocks.
- go-carpet - Tool for viewing test coverage in terminal.
- go-cmp - Package for comparing Go values in tests.
- go-hit - Hit is an http integration test framework written in golang.
- go-mutesting - Mutation testing for Go source code.
- go-mysql-test-container - Golang MySQL testcontainer to help with MySQL integration testing.
- go-snaps - Jest-like snapshot testing in Golang.
- go-testdeep - Extremely flexible golang deep comparison, extends the go testing package.
- go-testpredicate - Test predicate style assertions library with extensive diagnostics output.
- go-vcr - Record and replay your HTTP interactions for fast, deterministic and accurate tests.
- goblin - Mocha like testing framework of Go.
- goc - Goc is a comprehensive coverage testing system for The Go Programming Language.
- gocheck - More advanced testing framework alternative to gotest.
- GoConvey - BDD-style framework with web UI and live reload.
- gocrest - Composable hamcrest-like matchers for Go assertions.
- godog - Cucumber BDD framework for Go.
- gofight - API Handler Testing for Golang Router framework.
- gogiven - YATSPEC-like BDD testing framework for Go.
- gomatch - library created for testing JSON against patterns.
- gomega - Rspec like matcher/assertion library.
- Gont - Go network testing toolkit for testing building complex network topologies using Linux namespaces.
- gospecify - This provides a BDD syntax for testing your Go code. It should be familiar to anybody who has used libraries such as rspec.
- gosuite - Brings lightweight test suites with setup/teardown facilities to testing by leveraging Go1.7's Subtests.
- got - An enjoyable golang test framework.
- gotest.tools - A collection of packages to augment the go testing package and support common patterns.
- Hamcrest - fluent framework for declarative Matcher objects that, when applied to input values, produce self-describing results.
- httpexpect - Concise, declarative, and easy to use end-to-end HTTP and REST API testing.
- is - Professional lightweight testing mini-framework for Go.
- jsonassert - Package for verifying that your JSON payloads are serialized correctly.
- keploy - Generate Testcase and Data Mocks from API calls automatically.
- omg.testingtools - The simple library for change a values of private fields for testing.
- restit - Go micro framework to help writing RESTful API integration test.
- schema - Quick and easy expression matching for JSON schemas used in requests and responses.
- stop-and-go - Testing helper for concurrency.
- testcase - Idiomatic testing framework for Behavior Driven Development.
- testcerts - Dynamically generate self-signed certificates and certificate authorities within your test functions.
- testcontainers-go - A Go package that makes it simple to create and clean up container-based dependencies for automated integration/smoke tests. The clean, easy-to-use API enables developers to programmatically define containers that should be run as part of a test and clean up those resources when the test is done.
- testfixtures - A helper for Rails' like test fixtures to test database applications.
- Testify - Sacred extension to the standard go testing package.
- testsql - Generate test data from SQL files before testing and clear it after finished.
- testza - Full-featured test framework with nice colorized output.
- trial - Quick and easy extendable assertions without introducing much boilerplate.
- Tt - Simple and colorful test tools.
- wstest - Websocket client for unit-testing a websocket http.Handler.
- counterfeiter - Tool for generating self-contained mock objects.
- genmock - Go mocking system with code generator for building calls of the interface methods.
- go-localstack - Tool for using localstack in AWS testing.
- go-sqlmock - Mock SQL driver for testing database interactions.
- go-txdb - Single transaction based database driver mainly for testing purposes.
- gock - Versatile HTTP mocking made easy.
- gomock - Mocking framework for the Go programming language.
- govcr - HTTP mock for Golang: record and replay HTTP interactions for offline testing.
- hoverfly - HTTP(S) proxy for recording and simulating REST/SOAP APIs with extensible middleware and easy-to-use CLI.
- httpmock - Easy mocking of HTTP responses from external resources.
- minimock - Mock generator for Go interfaces.
- mockery - Tool to generate Go interfaces.
- mockhttp - Mock object for Go http.ResponseWriter.
- mooncake - A simple way to generate mocks for multiple purposes.
- moq - Utility that generates a struct from any interface. The struct can be used in test code as a mock of the interface.
- timex - A test-friendly replacement for the native time package.
- xgo - A general pureposed function mocking library.
- go-fuzz - Randomized testing system.
- gofuzz - Library for populating go objects with random values.
- Tavor - Generic fuzzing and delta-debugging framework.
- cdp - Type-safe bindings for the Chrome Debugging Protocol that can be used with browsers or other debug targets that implement it.
- chromedp - a way to drive/test Chrome, Safari, Edge, Android Webviews, and other browsers supporting the Chrome Debugging Protocol.
- ggr - a lightweight server that routes and proxies Selenium WebDriver requests to multiple Selenium hubs.
- playwright-go - browser automation library to control Chromium, Firefox and WebKit with a single API.
- rod - A Devtools driver to make web automation and scraping easy.
- selenoid - alternative Selenium hub server that launches browsers within containers.
- failpoint - An implementation of failpoints for Golang.