PHPackages                             atoum/atoum - 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/atoum

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

atoum/atoum
===========

Simple modern and intuitive unit testing framework for PHP 8.0+

4.4.1(7mo ago)1.4k2.6M—6.4%146[73 issues](https://github.com/atoum/atoum/issues)[1 PRs](https://github.com/atoum/atoum/pulls)20BSD-3-ClausePHPPHP ^8.0CI passing

Since Aug 16Pushed 6mo ago37 watchersCompare

[ Source](https://github.com/atoum/atoum)[ Packagist](https://packagist.org/packages/atoum/atoum)[ Docs](http://www.atoum.org)[ RSS](/packages/atoum-atoum/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (1)Versions (68)Used By (20)

[![atoum's logo](resources/images/logo.png)](resources/images/logo.png)

*atoum* [![Package version](https://camo.githubusercontent.com/a5b044fbc02a61782720b5fa9d299ba69d81eacf0cc670b39df2c3f1fc0ce0f8/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f61746f756d2f61746f756d2e737667)](https://packagist.org/packages/atoum/atoum) [![Build Status](https://github.com/atoum/atoum/actions/workflows/unit-tests.yml/badge.svg?branch=master)](https://github.com/atoum/atoum/actions/workflows/unit-tests.yml?query=branch%3Amaster) [![Coverage Status](https://camo.githubusercontent.com/f48974b104f3e6805f17323a0f00e2c36dba6f417a6005473b8a8f732f4f4046/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f6769746875622f61746f756d2f61746f756d2f62616467652e7376673f6272616e63683d6d6173746572)](https://coveralls.io/github/atoum/atoum?branch=master) [![Lint](https://github.com/atoum/atoum/actions/workflows/lint.yml/badge.svg?branch=master)](https://github.com/atoum/atoum/actions/workflows/lint.yml?query=branch%3Amaster) [![Gitter](https://camo.githubusercontent.com/e46c98f2c3c5f70cbd05893615c562dea4d6cb078e0e9e06afb2bfe1bf195963/68747470733a2f2f6261646765732e6769747465722e696d2f61746f756d2f61746f756d2e737667)](https://gitter.im/atoum/atoum?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
=======================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================

[](#atoum-----)

PHP versionatoum version5.3 -&gt; 5.61.x -&gt; 3.x7.2 -&gt; 8.14.X -&gt; 4.18.x4.1 &lt; 4.X (current)🚀 Full PHP 8.0-8.4 Support
--------------------------

[](#-full-php-80-84-support)

*atoum* now has **complete support** for modern PHP features, including:

- **PHP 8.0**: Constructor Property Promotion, Union Types, Named Arguments, Attributes
- **PHP 8.1**: Readonly Properties, Intersection Types, Enums, Never Return Type
- **PHP 8.2**: Readonly Classes, DNF Types, Standalone `true`/`false`/`null` types
- **PHP 8.3**: `#[\Override]` Attribute, Typed Class Constants
- **PHP 8.4**: Property Hooks, Asymmetric Visibility, `#[\Deprecated]` Attribute

All these features are fully supported in the **mock generator**, ensuring your modern PHP code can be properly tested. See [PHP\_MODERN\_SUPPORT.md](PHP_MODERN_SUPPORT.md) for detailed documentation.

A simple, modern and intuitive unit testing framework for PHP!
--------------------------------------------------------------

[](#a-simple-modern-and-intuitive-unit-testing-framework-for-php)

Just like SimpleTest or PHPUnit, *atoum* is a unit testing framework specific to the [PHP](http://www.php.net) language. However, it has been designed from the start with the following ideas in mind:

- Can be implemented *rapidly*,
- *Simplify* test development,
- Allow for writing *reliable, readable, and clear* unit tests.

To accomplish that, it massively uses capabilities provided by *PHP*, to give the developer *a whole new way* of writing unit tests. Therefore, it can be installed and integrated into an existing project extremely easily, since it is only a *single PHAR archive*, which is the one and only entry point for the developer. Also, thanks to its *fluent interface*, it allows for writing unit tests in a fashion close to natural language. It also makes it easier to implement stubbing within tests, thanks to intelligent uses of *anonymous functions and closures*. *atoum* natively, and by default, performs the execution of each unit test within a separate [PHP](http://www.php.net) process, to warrant *isolation*. Of course, it can be used seamlessly for continuous integration, and given its design, it can be made to cope with specific needs extremely easily. *atoum* also accomplishes all of this without affecting performance, since it has been developed to boast a reduced memory footprint while allowing for hastened test execution. It can also generate unit test execution reports in the Xunit format, which makes it compatible with continuous integration tools such as [Jenkins](http://jenkins-ci.org/). *atoum* also generates code coverage reports, in order to make it possible to supervise unit tests. Finally, even though it is developed mainly on UNIX, it can also work on Windows.

Why atoum?
----------

[](#why-atoum)

- *atoum* is really [easy to install](http://docs.atoum.org/en/latest/installation.html): clone it [from github](https://github.com/atoum/atoum), download [its PHAR](https://github.com/atoum/atoum/releases/download/3.2.0/atoum.phar) or simply [use composer](https://packagist.org/packages/atoum/atoum),
- *atoum* provides a high level of security during test execution by isolating each test method in its own PHP process. Of course, this feature is available out of the box, no need to install any additional extension,
- *atoum* runs tests in a parallelized environment making the suite run as fast as possible by taking advantage of today's multi-core CPUs,
- *atoum* provides a [full-featured set of natural and expressive assertions](http://docs.atoum.org/en/latest/asserters.html) making tests as readable as possible. Here is an example:

```
