FREEDOM251

Freedom251 › Property-Based Testing Tools

Gopter

Free plan LinuxSelf-hosted

Visit Gopter Alternatives Pricing

Gopter's own site

What Gopter is

Gopter is a free Go module for property-based testing: it generates inputs for conditions you define and checks the resulting properties. Its generator controls offer more options than Go's testing/quick package, with composition operations including Map, FlatMap, SuchThat and WithShrinker. When a property fails, shrinkers look for a smaller input that still reproduces the failure. Gopter also includes a generator for regular-expression matches and supports stateful tests built around 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. Documentation covers the gopter, gen, prop, arbitrary, commands and convey packages. The project declares Go 1.20 and uses the MIT License. Its README notes that it lacks ScalaCheck's Pretty feature and does not yet offer parallel commands. The package is listed as free.

Who it suits

Gopter is suited to Go developers who want generated inputs, shrinking and stateful property checks alongside the Go testing package or GoConvey.

What it does well

  • Shrinks failing inputs toward a smaller counterexample.
  • Supports stateful tests with arbitrary commands.
  • Runs properties with Go's testing.T.
  • Provides helpers for GoConvey tests.
  • Generators support Map, FlatMap, SuchThat and WithShrinker.

What to know first

  • No parallel commands yet.
  • Does not provide ScalaCheck's Pretty feature.
  • Requires Go 1.20, as declared by the project.

Limits

The free MIT-licensed package does not provide ScalaCheck’s Pretty feature, and parallel commands are not available yet.

Plans

PlanBilled and limitsPrice
MIT-licensed packageMIT License · Go packageFree
GopterMIT-licensed Go property-testing libraryFree

As github.com lists them, read 30 Sept 2026. The maker's own page has the final word.

Getting started

  1. Open the Gopter GitHub repository.
  2. Use the Go module github.com/leanovate/gopter in a Go project.
  3. Run property checks through TestingRun with a Go testing.T context.
  4. Use gopter/convey helpers when running tests inside GoConvey.

Overview

Gopter brings property-based testing to Go, for developers who want to check conditions against generated inputs rather than rely only on hand-picked examples. Its strong point is control over generators and the ability to shrink a failure to a smaller counterexample; its clearest trade-off is that it lacks ScalaCheck’s Pretty feature and parallel commands.

Key features

Gopter is a more sophisticated alternative to Go’s testing/quick, particularly when the shape of generated data matters. Generator operations including Map, FlatMap, SuchThat and WithShrinker give developers ways to compose inputs and control reduction. When a generated case breaks a property, shrinking searches for a minimum value that still falsifies it. That makes the failure easier to inspect, while reproducible failures let developers return to the same problem.

The library also generates strings matching regular expressions and supports stateful tests based on arbitrary commands. Those capabilities suit properties involving constrained text or behavior across command sequences, not just isolated inputs. Gopter offers console and formatted reporters for results. Its TestingRun API runs checks with Go’s testing.T context, and gopter/convey adds helpers for using properties inside GoConvey tests.

Documentation covers the gopter, gen, prop, arbitrary, commands and convey packages. The project declares Go 1.20 and is distributed under the MIT License. The README identifies two meaningful omissions: no ScalaCheck-style Pretty feature and no parallel commands. Teams that depend on either should consider another tool rather than assume these workflows are covered.

Pricing

Gopter is free: both the MIT-licensed package and the Gopter plan cost nothing. There is no paid tier or free trial. The free package is the whole offering, so it fits individual developers and teams that can use a Go library under the MIT License; there is no lower tier with reduced functionality or paid plan for added capacity.

Platforms

Gopter is a Go module for Linux and self-hosted use, with module path github.com/leanovate/gopter. It supports Go, Go’s testing package and GoConvey. This is a library-oriented choice rather than a web test service, so it suits projects running tests in their own Go environment.

Who it's for

Choose Gopter if you write Go and want configurable generators, automatic shrinking and support for stateful properties within familiar Go test workflows. It is especially useful when generated failures need to be reduced to actionable cases. It is a weaker fit for teams that need parallel commands or ScalaCheck’s Pretty feature, or developers working outside Go.

Pros and cons

  • Pros: Composable generator operations offer tighter input control than testing/quick.
  • Pros: Shrinking and reproducible failures help turn a failing generated case into a smaller debugging target.
  • Pros: Regex generation, stateful testing, Go testing integration and GoConvey helpers cover several Go testing styles.
  • Pros: The MIT-licensed package is free, with no paid-plan boundary.
  • Cons: Parallel commands are not available, limiting teams that need that form of test execution.
  • Cons: The absence of ScalaCheck’s Pretty feature may matter to developers who expect that capability.

Alternatives

For other choices, browse Property-Based Testing Tools. Pick fast-check if your work is in JavaScript or TypeScript and you want a free, MIT-licensed public project; Scala Hedgehog is the free Scala-oriented option. CsCheck is another free, self-hosted choice, under Apache 2. For Haskell random property testing, consider QuickCheck. If you want a free, open-source Go library with no dependencies outside the standard library, Rapid is a direct alternative. Hypothesis, RapidCheck and Proptest are also alternatives.

Verdict

Gopter is a sound choice for Go developers who want to build richer property checks, narrow failures automatically and keep tests in Go’s testing or GoConvey workflows, all at no cost. Its generator control and shrinking are the main reasons to choose it over testing/quick; look elsewhere if parallel commands or ScalaCheck’s Pretty feature are requirements.

Verdict

Gopter offers generator composition, shrinking and testing integrations for Go property checks. Its documented gaps are the lack of ScalaCheck's Pretty feature and parallel commands.

Questions

Is Gopter free?

Yes. The package is free and distributed under the MIT License.

Which platforms does Gopter support?

The listed platforms are Linux and self-hosted. Gopter is a Go module and declares Go 1.20.

Can Gopter run with Go’s testing package?

Yes. TestingRun runs property checks with a Go testing.T context.

Does Gopter support GoConvey?

Yes. The gopter/convey package provides helpers for using Gopter inside GoConvey tests.

Does Gopter shrink failing cases?

Yes. Its shrinkers seek a minimum value that falsifies a property.

Facts from Gopter's own pages

API usage
The package provides TestingRun for running property checks with a Go testing.T context. · pkg.go.dev, 30 Sept 2026
Commands limitation
The README says parallel commands are not available yet. · github.com, 30 Sept 2026
Documentation packages
Documentation covers gopter, gen, prop, arbitrary, commands, and convey packages. · github.com, 30 Sept 2026
Generator composition
Generators support operations including Map, FlatMap, SuchThat, and WithShrinker. · pkg.go.dev, 2 Oct 2026
Generators
It provides tighter control over generators than Go's testing/quick package. · github.com, 2 Oct 2026
GoConvey
The gopter/convey package provides helpers for using Gopter inside GoConvey tests. · github.com, 2 Oct 2026
GoConvey integration
The convey package provides helpers used by Gopter inside GoConvey tests. · github.com, 30 Sept 2026
Known limitation
The README notes that Gopter does not provide ScalaCheck's Pretty feature and has no parallel commands yet. · github.com, 2 Oct 2026
License
The repository identifies Gopter as MIT licensed. · github.com, 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, 30 Sept 2026
Maker size
Leanovate is listed as having 11–50 employees. · linkedin.com, 30 Sept 2026
Module version
pkg.go.dev lists version v0.2.11, published April 3, 2024. · pkg.go.dev, 30 Sept 2026
Platform and delivery
The project is a Go module with module path github.com/leanovate/gopter and declares Go 1.20. · github.com, 2 Oct 2026
Property testing
It creates properties from condition functions and generated inputs. · github.com, 2 Oct 2026
Purpose
Gopter is a Go property-testing library that brings ideas from ScalaCheck and QuickCheck to Go. · github.com, 2 Oct 2026
Regex generation
It includes a generator for regular-expression matches. · github.com, 2 Oct 2026
Regex support
Gopter includes a generator for regex matches. · github.com, 30 Sept 2026
Reporting
Gopter provides console and formatted reporters for test results. · pkg.go.dev, 2 Oct 2026
Shrinking
Its shrinkers automatically seek a minimum value that falsifies a property. · github.com, 2 Oct 2026
Stateful testing
Gopter supports stateful tests. · github.com, 30 Sept 2026
Stateful tests
It supports stateful tests based on arbitrary commands. · github.com, 2 Oct 2026
Support channel
The project is hosted in a public GitHub repository with an Issues section. · github.com, 30 Sept 2026
Testing integration
Properties can be run with Go's testing.T through TestingRun. · pkg.go.dev, 2 Oct 2026
Testing scope
Gopter is described as a more sophisticated version of Go's testing/quick package. · github.com, 30 Sept 2026

Where Gopter stands on Freedom251

Look at these too