Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


... the GOlang Property TestER Build Status codecov GoDoc Go Report Card

Change Log


Gopter tries to bring the goodness of ScalaCheck (and implicitly, the goodness of QuickCheck) to Go. It can also be seen as a more sophisticated version of the testing/quick package.

Main differences to ScalaCheck:

  • It is Go ... duh
  • ... nevertheless: Do not expect the same typesafety and elegance as in ScalaCheck.
  • For simplicity Shrink has become part of the generators. They can still be easily changed if necessary.
  • There is no Pretty ... so far gopter feels quite comfortable being ugly.
  • A generator for regex matches
  • No parallel commands ... yet?

Main differences to the testing/quick package:

  • Much tighter control over generators
  • Shrinkers, i.e. automatically find the minimum value falsifying a property
  • A generator for regex matches (already mentioned that ... but it's cool)
  • Support for stateful tests


Current godocs:

  • gopter: Main interfaces
  • gopter/gen: All commonly used generators
  • gopter/prop: Common helpers to create properties from a condition function and specific generators
  • gopter/arbitrary: Helpers automatically combine generators for arbitrary types
  • gopter/commands: Helpers to create stateful tests based on arbitrary commands
  • gopter/convey: Helpers used by gopter inside goconvey tests


MIT Licence