giorgiosironi/eris
PHP library for property-based testing. Integrates with PHPUnit.
1.1.0
1.7M downloads/mo
#1878 most downloaded on Packagist
giorgiosironi/eris
What this package is like to depend on
Last release 4 months ago
31 Mar 2026
Ships fairly regularly
a new release about every 11 months
Nearly every release is documented
notes for 18 of 18 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
20 releases · first in 2014
1 release in the last 12 months
see the full history below
Release timeline
20 releases · Dec 2014 to Mar 2026Releases
latest 20-
1.1.031 Mar 2026Release notes
Open source →Added
- Support for PHPUnit 11, 12, and 13 (#202), thanks @tob-scott-a.
Changed
- Updated PHPStan to v2
- Updated Rector to v2
- Updated phpunit.xml schema reference from 8.0 to 10.5
Removed
- Support for
icomefromthenet/reverse-regexdependency. Onlyilario-pierbattista/reverse-regexis now supported for theregex()generator (other forks are welcome).
Release notes
Open source →Added
- Support for PHPUnit 11, 12, and 13 (#202), thanks @tob-scott-a.
Changed
- Updated PHPStan to v2
- Updated Rector to v2
- Updated phpunit.xml schema reference from 8.0 to 10.5
Removed
- Support for
icomefromthenet/reverse-regexdependency. Onlyilario-pierbattista/reverse-regexis now supported for theregex()generator (other forks are welcome).
-
1.0.007 Dec 2024Release notes
Open source →Added
- Support for PHP 8.2, 8.3, 8.4
Removed
- Support for PHP < 8.1
- Support for PHPUnit < 10
Release notes
Open source →Added
- Support for PHP 8.2, 8.3, 8.4
- Project maturity milestone: Eris has reached version 1.0.0 and is now considered stable for production use. The API is stable and follows semantic versioning.
Removed
- Support for PHP < 8.1
- Support for PHPUnit < 10
-
1.0.0-rc208 Mar 2024 pre-releaseRelease notes
Open source →chore: Promote annotations @before and @beforeClass to attributes (#175)
* chore: Promote annotations @before and @beforeClass to attributes
* Solve own deprecations. Update test matrix for CI
* Update matrix to reflect the fact that PHPUnit11 cannot run on PHP 8.1
* Reinstate docblock, now properly parametrized
* Modify phpstan-baseline to reflect 1 less error in codebase
-
1.0.0-rc124 Apr 2023 pre-releaseRelease notes
Open source →chore: (bc) Update PHP and PHPUnit minimum version requirements (#164)
* chore: (bc) Update PHP and PHPUnit minimum version requirements
- Use attributes to handle what was previously handled through annotations
---------
Co-authored-by: Ilario Pierbattista <[email protected]>
-
0.14.107 Dec 2024 -
0.14.021 Apr 2023Release notes
Open source →Added
ilario-pierbattista/reverse-regexas substitute peer dependency oficomefromthenet/reverse-regex.- Support for PHP 8.2
Removed
- Support for PHP < 7.4
- Support for PHPUnit < 8
Release notes
Open source →Added
ilario-pierbattista/reverse-regexas substitute peer dependency oficomefromthenet/reverse-regex.- Support for PHP 8.2
Removed
- Support for PHP < 7.4
- Support for PHPUnit < 8
-
0.13.017 Dec 2021Release notes
Open source →Added
Eris\Generatorscontains all the generator constructors as static methods.- Support for PHP 8.1
Changed
- The generator constructors implemented as simple functions now call the static methods of
Eris\Generators. They will be deprecated.
Removed
- Support for PHP < 7.1
- Support for PHPUnit < 6
Release notes
Open source →Added
Eris\Generatorscontains all the generator constructors as static methods.- Support for PHP 8.1
Changed
- The generator constructors implemented as simple function now call the static methods of
Eris\Generators. They will be deprecated.
Removed
- Support for PHP < 7.1
- Support for PHPUnit < 6
-
0.12.127 Jul 2021Release notes
Open source →Changed
- Visibility of TestTrait's methods in Facade is now public (#110,#141). Thanks, @bekh6ex.
Fixed
- Compatibility with newer versions of PHPUnit:
getAnnotationsis removed (#143). Thanks, @aszenz.
-
0.12.025 Mar 2021Release notes
Open source →- PHP 7.3 support (#120).
- PHP 7.4 support (#125).
- CI support for testing end to end suite also with Phpunit 8.x and 9.x
- Allow
shrink()to receive GeneratedValueOptions (#127). - Allow specifying generator size with
sample()(#128) - Fix
BooleanGenerator::shrink()to return a GeneratedValueSingle (#131) - Drop support for HHVM 3.30
Release notes
Open source →- PHP 7.3 support (#120).
- PHP 7.4 support (#125).
- CI support for testing end to end suite also with Phpunit 8.x and 9.x
- Allow
shrink()to receive GeneratedValueOptions (#127). - Allow specifying generator size with
sample()(#128) - Fix
BooleanGenerator::shrink()to return a GeneratedValueSingle (#131) - Drop support for HHVM 3.30
-
0.11.016 Sep 2018Release notes
Open source →- PHP 7.2 support (#116, #114).
- Annotations support:
@eris-method,@eris-shrink,@eris-ratio,@eris-repeat,@eris-duration
-
0.10.023 Mar 2018Release notes
Open source →- Allowing use outside of PHPUnit through
Eris\Facade. - Fixed bug:
suchThat()fails to generated good values when all those from generator size 0 are exclude (#100). - PHPUnit 7.x support (#112, #113).
- BC: dropped the deprecated
Shrinker\Random. - BC: dropped the unused
Generator::contains().
- Allowing use outside of PHPUnit through
-
0.9.012 Mar 2017Release notes
Open source →- Using new
multipledeterministic shrinking instead ofrandom, being abandoned (#87). - Supporting PHPUnit 6.x (#96).
- Supporting PHP 7.1 (#97).
- Added
Listener::onAttempt() - Fixed bug:
pos()andneg()can shrink to0(#96). - Fixed bug: denominator in float generation can be 0 (#92).
- Fixed bug: shrinking of date generation uses wrong operator precedence (#94).
- Fixed bug: reproducible PHPUnit commands are not escaped correctly if they contain namespaced classes.
- Added CONTRIBUTORS
- BC:
minimumEvaluationRatiois now a method to be called, not a private field. Defaults to 0.5. - BC:
GeneratedValueis now an interface and not a class. - BC: extended
Listener::endPropertyVerification()with additional parameters$iterationsand optional$exception.
- Using new
-
0.8.015 Apr 2016Release notes
Open source →- Updated dependency on
icomefromthenet/reverse-regexto solve warnings on PHP 7. bindGenerator.- Default string dump for
Listener\collectFrequencies(). - Optionally logging generations with
hook(Listener\log($filename)). disableShrinking()option.limitTo()accepts aDateIntervaltoo.- Configurability of randomness: choice between
rand,mt_rand, and a pure PHP Mersenne Twister. suchThatGenerator accepts PHPUnit constraints likewhen().Generator\constant()utility function.- Fixed bug of size not being fully explored due to slow growth.
- Switched to PSR-2 coding standards and PSR-4 autoloading.
- BC:
frequencygenerator only accepts variadics args, not an array anymore. - BC: removed
strictlyPosandstrictlyNegGenerators as duplicated ofposandnegones. - BC: removed
andAlso,theCondition,andTheCondition,implies,implyaliases which no one uses. Addedandfor multiple preconditions.
- Updated dependency on
-
0.7.004 Mar 2016Release notes
Open source →associative,map,subSet,suchThatGenerators.- Optionally limiting the number of generations with
limitTo(). - Optionally collecting generated data with
hook(Listener\collectFrequencies()). - Support for listeners with
startPropertyVerification,newGenerationandendPropertyVerificationevents. - BC: changed Generators API to use
GeneratedValueobjects. - BC: requiring PHP 5.5 or newer.
- BC: dropped array single parameter in
forAll(). - PHP 7 compatibility.
- Renaming all Generator classes to *Generator.
-
0.5.005 Nov 2015Release notes
Open source →- Generators are now based on size, an increasing random parameter.
choose()new Generator to get integers inside a fixed range.- PHPUnit 5.x is supported.
setnew Generator.- Differentiating
pos,nat,negGenerators. - GeneratorSampleTest to get sample output from Generators.
-
0.4.027 May 2015Release notes
Open source →- Showing generated input with
ERIS_ORIGINAL_INPUT=1. namesanddate(DateTime) new Generators.tupleGenerator supports variadic arguments.- Shrinking respects
when()clauses. - Dates and sorting examples.
- Showing generated input with
-
0.3.107 Jan 2015Release notes
Open source →forAll()accepts multiple arguments instead of an array.byteGenerator.
-
0.3.028 Dec 2014Release notes
Open source →frequencyandoneOfGenerators that combine other Generators.sequenceGenerator for lists of constant type and variable size.charGenerators withprintableCharacterAntecedent.int,pos,negandfloatGenerators.regexGenerator to build strings satisfying a regular expression.- Shrinking respects an optional maximum time limit (
$this->shrinkingtimeLimit).
-
0.2.013 Dec 2014Release notes
Open source →- Generators now use the Generator\nat(...) syntax.
- Added
bool,constant,elements,string,tupleGenerators. - Improved shrinking by performing it on all involved Generators.
- Reproducibility with ERIS_SEED.
-
0.1.008 Dec 2014Release notes
Open source →forAll()andthen()syntax.naturalandvectorGenerators.when()for constraints.- Basic best-effort shrinking.
sample()andsampleShrink()for Generators.