Hypothesis

Test faster, fix more

Hypothesis for Python

This is our current primary focus and the only currently production ready implementation of the Hypothesis design.

It features:

  • A full implementation of property based testing for Python, including stateful testing.
  • An extensive library of data generators and tools for writing your own.
  • Compatible with py.test, unittest, nose and Django testing, and probably many others besides.
  • Supports CPython and PyPy 3.8 and later (older versions are EoL upstream).
  • Open source under the Mozilla Public License 2.0

To use Hypothesis for Python, simply add the hypothesis package to your requirements, or pip install hypothesis directly.

The code is available on GitHub and documentation is available on readthedocs.

Hypothesis for Java

Hypothesis for Java is currently a feasibility prototype only and is not ready for production use. We are looking for initial customers to help fund getting it off the ground.

As a prototype it currently features:

  • Enough of the core Hypothesis model to be useful.
  • Good JUnit integration.
  • A small library of data generators.

The end goal is for Hypothesis for Java to have feature parity with Hypothesis for Python, and to take advantage of the JVM’s excellent concurrency support to provide parallel testing of your code, but it’s not there yet.

The current prototype is released under the AGPL3 (this is not the intended license for the full version, which will most likely be Apache licensed) and is available on GitHub.

Email us at [email protected] if you want to know more about Hypothesis for Java or want to discuss being an early customer of it.