PHPackages                             atoum/praspel-extension - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Testing &amp; Quality](/categories/testing)
4. /
5. atoum/praspel-extension

AbandonedArchivedLibrary[Testing &amp; Quality](/categories/testing)

atoum/praspel-extension
=======================

Include Praspel inside atoum.

0.17.02.24(9y ago)630.0k↑55.6%4[1 issues](https://github.com/hoaproject/Contributions-Atoum-PraspelExtension/issues)5BSD-3-ClausePHP

Since Sep 17Pushed 9y ago7 watchersCompare

[ Source](https://github.com/hoaproject/Contributions-Atoum-PraspelExtension)[ Packagist](https://packagist.org/packages/atoum/praspel-extension)[ Docs](https://hoa-project.net/)[ RSS](/packages/atoum-praspel-extension/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (3)Dependencies (11)Versions (11)Used By (5)

atoum/praspel-extension
=======================

[](#atoumpraspel-extension)

This extension introduces [Praspel](https://central.hoa-project.net/Resource/Library/Praspel) inside atoum.

[atoum](http://atoum.org/) is a **simple**, **modern** and **intuitive** unit testing framework for PHP!

[Hoa](https://hoa-project.net/) is a **modular**, **extensible** and **structured** set of PHP libraries. Moreover, Hoa aims at being a bridge between industrial and research worlds.

Installation
------------

[](#installation)

With [Composer](http://getcomposer.org/), to include this library into your dependencies, you need to require [`atoum/praspel-extension`](https://packagist.org/packages/atoum/praspel-extension):

```
composer require --dev atoum/praspel-extension

```

Please, read the website to [get more informations about how to install](https://hoa-project.net/Source.html).

And to activate the extension, add this line on your `.atoum.php` configuration file:

```
$runner->addExtension(new \Atoum\PraspelExtension\Manifest());
```

Quick usage
-----------

[](#quick-usage)

This extension brings two aspects into atoum: automatic test data generation (from [`Hoa\Realdom`](https://central.hoa-project.net/Resource/Library/Realdom)) and automatic test suite generation (from [`Hoa\Praspel`](https://central.hoa-project.net/Resource/Library/Praspel), which relies on `Hoa\Realdom`).

### Automatic test data generation

[](#automatic-test-data-generation)

\[more explications needed\] We will use three asserters to generate data and one to validate data:

1. `realdom` to create a realistic domains disjunction,
2. `sample` to generate one data from a realistic domains disjunction,
3. `sampleMany` to generate several data,
4. `predicate` to validate a data against a realistic domains disjunction.

As an example, we are going to generate an integer defined by: \[7; 13\] ∪ \[42; 153\]:

```
$this->sample($this->realdom->boundinteger(7, 13)->or->boundinteger(42, 153))
```

We can obviously use the classical asserters from atoum:

```
foreach ($this->sampleMany($this->realdom->boundinteger(-5, 5), 1024) as $i) {
    $this->integer($i)->isGreaterThan(0);
}
```

(this example is a little dummy ;-)).

We can generate more sophisticated data (please, see the standard realistic domain library in [`Hoa\Realdom`](https://central.hoa-project.net/Resource/Library/Realdom)), such as strings based on regular expressions (and also grammars):

```
$data = $this->realdom->regex('/[\w\-_]+(\.[\w\-\_]+)*@\w\.(net|org)/');
$this->string($this->sample($data))
     ->contains(…)->…;
```

Or even dates:

```
$data = $this->realdom->date(
    'd/m H:i',
    $this->realdom->boundinteger(
        $this->realdom->timestamp('yesterday'),
        $this->realdom->timestamp('next Monday')
    )
);

foreach ($this->sampleMany($data, 10) as $date) {
    var_dump($date);
}
```

### Automatic test suite generation

[](#automatic-test-suite-generation)

We will use the `Bin/praspel` binary script. \[TODO\]

Documentation of Hoa
--------------------

[](#documentation-of-hoa)

Different documentations can be found on the website: .

Links
-----

[](#links)

- [atoum](http://atoum.org),
- [atoum's documentation](http://docs.atoum.org),
- [Hoa](http://hoa-project.net).

License
-------

[](#license)

Hoa, along with this extension, is under the New BSD License (BSD-3-Clause). Please, see [`LICENSE`](http://hoa-project.net/LICENSE).

[![atoum](https://camo.githubusercontent.com/84337427ea4f14ccaaad63ffecb66b18fb24c32838a54af0fcdd8c0dbdd5e238/687474703a2f2f61746f756d2e6f72672f696d616765732f6c6f676f2f61746f756d2e706e67)](https://camo.githubusercontent.com/84337427ea4f14ccaaad63ffecb66b18fb24c32838a54af0fcdd8c0dbdd5e238/687474703a2f2f61746f756d2e6f72672f696d616765732f6c6f676f2f61746f756d2e706e67)+ [![Hoa](https://camo.githubusercontent.com/a51b42c8c5994c72e968fdcbcd8d5825dc1e9f8f57be97d29341b6be21277695/68747470733a2f2f7374617469632e686f612d70726f6a6563742e6e65742f496d6167652f486f615f736d616c6c2e706e67)](https://camo.githubusercontent.com/a51b42c8c5994c72e968fdcbcd8d5825dc1e9f8f57be97d29341b6be21277695/68747470733a2f2f7374617469632e686f612d70726f6a6563742e6e65742f496d6167652f486f615f736d616c6c2e706e67)

###  Health Score

36

—

LowBetter than 82% of packages

Maintenance17

Infrequent updates — may be unmaintained

Popularity34

Limited adoption so far

Community23

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 87.2% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~98 days

Total

10

Last Release

3364d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/a410060743cec0e0d8654661b726a7a25f5888f18059d4c942a8fd9a8128f0da?d=identicon)[Hoa](/maintainers/Hoa)

---

Top Contributors

[![Hywan](https://avatars.githubusercontent.com/u/946104?v=4)](https://github.com/Hywan "Hywan (68 commits)")[![vonglasow](https://avatars.githubusercontent.com/u/1275202?v=4)](https://github.com/vonglasow "vonglasow (7 commits)")[![jubianchi](https://avatars.githubusercontent.com/u/327237?v=4)](https://github.com/jubianchi "jubianchi (2 commits)")[![agallou](https://avatars.githubusercontent.com/u/320372?v=4)](https://github.com/agallou "agallou (1 commits)")

---

Tags

atoum-extensionhoalibraryphppraspeltestdataspecificationlibraryassertiongenerationatoumcontractcheckerpraspel

### Embed Badge

![Health badge](/badges/atoum-praspel-extension/health.svg)

```
[![Health](https://phpackages.com/badges/atoum-praspel-extension/health.svg)](https://phpackages.com/packages/atoum-praspel-extension)
```

###  Alternatives

[mockery/mockery

Mockery is a simple yet flexible PHP mock object framework

10.7k497.0M23.6k](/packages/mockery-mockery)[nelmio/alice

Expressive fixtures generator

2.5k43.4M133](/packages/nelmio-alice)[zenstruck/assert

Standalone, lightweight, framework agnostic, test assertion library.

8114.9M8](/packages/zenstruck-assert)[niklongstone/regex-reverse

Regular Expression reverter, generates a string from a provided regular expression

105150.4k4](/packages/niklongstone-regex-reverse)[atoum/atoum-bundle

Bundle around atoum unit testing framework

44360.9k10](/packages/atoum-atoum-bundle)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
