Skip to content
SPECIFICTION
Get listed

Eris

github.com

Self-hosted
Visit github.com
Spec score 7.6 #12 of 28 in Property-Based Testing Tools

Spec sheet

Purpose
Eris brings QuickCheck-style property-based testing to PHP and PHPUnit.Read 7 Oct 2026 · github.com
Support
The project invites users to open GitHub issues for support and feature requests.Read 7 Oct 2026 · github.com
License
The repository identifies the project as MIT licensed.Read 7 Oct 2026 · github.com
Maker
The repository is under Giorgio Sironi’s GitHub account, whose profile lists Cambridge, UK.Read 7 Oct 2026 · github.com
Compatibility
The repository lists support for PHP 8.1 through 8.4 and PHPUnit 10.x through 13.x.Read 7 Oct 2026 · github.com
Configurable runtime
The number of generated iterations and a test duration can be configured, though the duration is approximate because a running iteration and any shrinking must finish.Read 7 Oct 2026 · eris.readthedocs.io
Default sample size
By default, Eris runs 100 generated values for each forAll() call.Read 7 Oct 2026 · eris.readthedocs.io
Failure shrinking
When an assertion fails, Eris attempts to simplify the generated input and reports the simplest failing value it finds.Read 7 Oct 2026 · eris.readthedocs.io
Generated testing
It generates samples of inputs and runs them against properties defined for the system under test.Read 7 Oct 2026 · eris.readthedocs.io
Generators
Its documented generators cover scalar values, collections, composite values, and domain-based values such as names and dates.Read 7 Oct 2026 · eris.readthedocs.io
Input generators
Documented generators cover scalar values, collections, composite values, and domain data such as names, dates, and regex-matching strings.Read 7 Oct 2026 · eris.readthedocs.io
Installation
The README gives Composer as the installation method and shows the command composer require --dev giorgiosironi/eris.Read 7 Oct 2026 · github.com
Listeners
Listeners can receive events during test runs, and documented examples collect generated-value frequencies or write progress logs.Read 7 Oct 2026 · eris.readthedocs.io
Maintainer
The project documentation credits Giorgio Sironi.Read 7 Oct 2026 · eris.readthedocs.io
Notable limit
The documentation says a configured time limit is approximate because the current iteration and any resulting shrinking must finish before the test stops.Read 7 Oct 2026 · eris.readthedocs.io
Outside PHPUnit
Eris can also be used as a library to generate reproducible random data in other testing frameworks or scripts.Read 7 Oct 2026 · eris.readthedocs.io
PHPUnit integration
Eris can be installed as a Composer development dependency and its examples can be run with PHPUnit.Read 7 Oct 2026 · eris.readthedocs.io
Reproducibility
When Eris is used outside PHPUnit, the documentation says reproducibility can be obtained by setting the ERIS_SEED environment variable.Read 7 Oct 2026 · eris.readthedocs.io
Runtime controls
A forAll call generates 100 values by default, and users can configure iteration counts or a test duration.Read 7 Oct 2026 · eris.readthedocs.io
Security and license
The GitHub repository identifies an MIT license; the opened maker pages do not state security certifications or compliance claims.Read 7 Oct 2026 · github.com
Shrinking caveat
Shrinking is performed for assertion failures, while generic exceptions from the test callback interrupt the test.Read 7 Oct 2026 · eris.readthedocs.io
Supported versions
The repository README lists PHP 8.1–8.4 and PHPUnit 10.x–13.x as compatible versions.Read 7 Oct 2026 · github.com
Usage outside PHPUnit
Eris can be used outside PHPUnit as a library for reproducible random data generation, including in other testing frameworks or scripts.Read 7 Oct 2026 · eris.readthedocs.io

Where Specifiction places it

Alternatives to ErisAll alternatives →