Eris
github.com
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
- Property-Based Testing Tools#12 of 287.6