Sunday, October 25, 2026 4,350 lists 78,100 records on file
List your app or device

  1. Home
  2. Property-Based Testing Tools
  3. Gopter

Gopter

What it is

Gopter is a free Go module for property-based testing: it creates inputs for conditions you define and checks the resulting properties. Its generators offer more control than Go's testing/quick package and can be composed with operations such as Map, FlatMap, SuchThat, and WithShrinker. If a property fails, shrinkers seek a smaller value that still demonstrates the problem. Gopter includes a generator for regular-expression matches and supports stateful tests based on arbitrary commands. Properties can run with Go's testing.T through TestingRun, and the gopter/convey package provides helpers for using Gopter within GoConvey tests. Console and formatted reporters display results. The module declares Go 1.20 and is distributed under the MIT License. Documentation covers gopter, gen, prop, arbitrary, commands, and convey packages. The README notes two omissions: it does not offer ScalaCheck's Pretty feature, and parallel commands are not available yet. The public GitHub repository includes an Issues section for project reports.

For and against

For

  • Shrinkers seek smaller values that reproduce failures
  • Includes a generator for regex matches
  • Properties can run with Go's testing.T
  • Provides helpers for GoConvey tests

Against

  • Does not include ScalaCheck's Pretty feature
  • Parallel commands are not available yet

The verdict

Gopter offers property generation, shrinking, and testing integrations in a Go module. Its documented gaps include the missing Pretty feature and unavailable parallel commands.

Who it suits

Gopter suits Go developers who want to test properties using generated inputs, including stateful cases. It also has helpers for projects that use GoConvey.

Plans and prices

Gopter

Free

MIT-licensed Go property-testing library

MIT-licensed package

Free

MIT License · Go package

Every plan, in full

On the record

API usage
The package provides TestingRun for running property checks with a Go testing.T context.pkg.go.dev · read 30 Sep 2026
Commands limitation
The README says parallel commands are not available yet.github.com · read 30 Sep 2026
Documentation packages
Documentation covers gopter, gen, prop, arbitrary, commands, and convey packages.github.com · read 30 Sep 2026
Generator composition
Generators support operations including Map, FlatMap, SuchThat, and WithShrinker.pkg.go.dev · read 2 Oct 2026
Generators
It provides tighter control over generators than Go's testing/quick package.github.com · read 2 Oct 2026
GoConvey
The gopter/convey package provides helpers for using Gopter inside GoConvey tests.github.com · read 2 Oct 2026
GoConvey integration
The convey package provides helpers used by Gopter inside GoConvey tests.github.com · read 30 Sep 2026
Known limitation
The README notes that Gopter does not provide ScalaCheck's Pretty feature and has no parallel commands yet.github.com · read 2 Oct 2026
License
The repository identifies Gopter as MIT licensed.github.com · read 2 Oct 2026
Maker business
Leanovate describes itself as a software development company supporting product implementation, technical scaling, digital transformation, organizational development, workshops, and training.linkedin.com · read 30 Sep 2026
Maker size
Leanovate is listed as having 11–50 employees.linkedin.com · read 30 Sep 2026
Module version
pkg.go.dev lists version v0.2.11, published April 3, 2024.pkg.go.dev · read 30 Sep 2026
Platform and delivery
The project is a Go module with module path github.com/leanovate/gopter and declares Go 1.20.github.com · read 2 Oct 2026
Property testing
It creates properties from condition functions and generated inputs.github.com · read 2 Oct 2026
Purpose
Gopter is a Go property-testing library that brings ideas from ScalaCheck and QuickCheck to Go.github.com · read 2 Oct 2026
Regex generation
It includes a generator for regular-expression matches.github.com · read 2 Oct 2026
Regex support
Gopter includes a generator for regex matches.github.com · read 30 Sep 2026
Reporting
Gopter provides console and formatted reporters for test results.pkg.go.dev · read 2 Oct 2026

The review

Overview

Gopter brings property-based testing to Go, for developers who want to check behavior across generated inputs rather than hand-picked examples alone. It is a strong fit for Go projects that need controllable generators and shrinking, but a less complete match for teams expecting ScalaCheck’s full feature set.

Key features

Gopter builds properties from condition functions and generated inputs. Its generators can be composed with Map, FlatMap, SuchThat and WithShrinker, giving developers tighter control over test data than Go’s testing/quick. That flexibility is useful when inputs need particular shapes or constraints; it also means the value depends on being willing to define and compose generators.

When a property fails, shrinkers reduce the failing input toward a minimum counterexample. Reproducible failures make that smaller case easier to investigate again, an important practical advantage when generated inputs uncover edge cases that ordinary examples miss. Gopter also supplies a generator for regular-expression matches and supports stateful tests based on arbitrary commands, extending coverage from constrained strings to sequences of operations.

Integration is centered on Go testing: TestingRun runs property checks with a testing.T context, while gopter/convey provides helpers for GoConvey tests. Console and formatted reporters show test results. Documentation covers the gopter, gen, prop, arbitrary, commands and convey packages. The trade-off is a documented gap versus ScalaCheck: Gopter has no Pretty feature, and parallel commands are not available yet.

Pricing

Gopter is free, with no free trial or paid tier. The MIT-licensed Go package is priced at free; there are no seat charges or plan quotas to weigh. Its open-source license also makes it a practical option for teams that want to adopt or adapt a property-testing library without a software subscription.

Platforms

Gopter is a Go module for Linux and self-hosted environments, with Go as its supported language. It declares Go 1.20 and has module path github.com/leanovate/gopter. Go’s testing package and GoConvey are the supported test-runner integrations.

Who it's for

Choose Gopter for Go codebases where property checks, automatic shrinking, constrained generators or stateful command sequences can improve confidence beyond example-based tests. It is less suited to teams that require ScalaCheck’s Pretty feature or parallel commands, or to developers working outside Go.

Pros and cons

  • Pros: Composable generators and automatic shrinking give developers control over inputs and a smaller failing case to debug.
  • Pros: Regex generation, stateful tests, reproducible failures and Go testing/GoConvey integration cover several testing styles in one package.
  • Pros: The MIT license and free plan remove purchase cost and restrictive paid-plan trade-offs.
  • Cons: The missing Pretty feature leaves a documented gap for users seeking ScalaCheck parity.
  • Cons: Parallel commands are not available, limiting that testing approach.

Alternatives

For a different language, SwiftCheck is a free option for macOS and iOS. JSVerify is a free JavaScript property-testing library for self-hosted and web environments. Scala developers can compare free, Linux-focused Scala Hedgehog with ScalaCheck, which is free for Linux, macOS and Windows.

For other ecosystems, CsCheck is a free self-hosted option, while FsCheck is a free BSD-licensed library with NuGet packages. QCheck is a free Linux option for OCaml. Java developers can consider QuickTheories, a free open-source library produced at NCR Edinburgh as part of its graduate training program. Browse more options in Property-Based Testing Tools.

Verdict

Gopter is a sound choice for Go developers who want configurable property generation, useful shrinking and integration with familiar Go test frameworks at no cost. Look elsewhere if parallel commands or ScalaCheck’s Pretty feature are essential, or if your project is not written in Go.

Alternatives to Gopter

Every alternative, ranked