Gopter vs PropEr
Gopter
github.comPropEr
proper-testing.github.ioSide by side
| Figure | Gopter | PropEr |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Linux | Yes | — |
| Self-hosted | Yes | Yes |
| Plans published | 2 | 1 |
| Spec score · Property-Based Testing Tools | 8.6 (#2) | 7.5 (#14) |
| Known limitation | The README notes that Gopter does not provide ScalaCheck's Pretty feature and has no parallel commands yet. | PropEr's generator language and Erlang type language differ for list expressions, allowing generators to specify lists of particular lengths and element types. |
| License | The repository identifies Gopter as MIT licensed. | PropEr is open-source software distributed under the GPL, version 3 or later. |
| Purpose | Gopter is a Go property-testing library that brings ideas from ScalaCheck and QuickCheck to Go. | PropEr is a tool for automated, semi-random, property-based testing of Erlang programs. |
| Stateful testing | Gopter supports stateful tests. | It can also be used for model-based random testing of stateful systems. |
Plans
In their own words
Gopter
Gopter is a free Go module for property-based testing. It creates properties from conditions and generated inputs, then checks whether those properties hold. Its generators provide more control than Go's testing/quick package and can be composed with operations such as Map, FlatMap, SuchThat, and WithShrinker. When a property fails, shrinkers seek a smaller value that still demonstrates the failure. Gopter also 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 inside GoConvey tests. Console and formatted reporters present test results. The project declares Go 1.20 and is distributed under the MIT License. Its documentation covers the gopter, gen, prop, arbitrary, commands, and convey packages. The README identifies two omissions: ScalaCheck's Pretty feature is not provided, and parallel commands are not available yet.
PropEr
PropEr is a free, open-source testing tool for Erlang programs. It performs automated, semi-random property-based testing and can generate input data from Erlang type declarations. Functions can be tested automatically from information in their Erlang specifications, while properties are written as Erlang expressions with predefined macros. PropEr also supports model-based random testing for stateful systems and targeted property-based testing using search-based techniques. Failing cases can be shrunk, and the project supports EUnit and Common Test. Constraints that Erlang’s type language cannot express can be handled with custom generators; filtering may keep trying random values until one passes. The generator language differs from Erlang’s type language for list expressions, including support for particular list lengths and element types. PropEr is self-hosted, supports Erlang, and is distributed under GPL version 3 or later. The guide describes installation from GitHub source, with make, or through Homebrew.