jclaveau / phpunit-profile-asserts
Provides asserts against memory usage and execution time for PHPUnit
Package info
github.com/jclaveau/phpunit-profile-asserts
pkg:composer/jclaveau/phpunit-profile-asserts
1.2.0
2026-03-04 19:25 UTC
Requires
- php: ^8.0
- phpunit/phpunit: ^9.5
- symfony/stopwatch: ^5.0 || ^6.0 || ^7.0
This package is auto-updated.
Last update: 2026-03-04 19:26:50 UTC
README
This lib provides asserts against execution time and memory usage. It also provides a StopwatchListener based on the Stopwatch component of Symfony.
Installation
phpunit-profile-asserts is installable via Composer
and should be added as a require-dev dependency:
composer require --dev jclaveau/phpunit-profile-asserts
Usage
Enable by adding the following code to your project's phpunit.xml file:
<phpunit bootstrap="vendor/autoload.php"> ... <listeners> <listener class="JClaveau\PHPUnit\Listener\StopwatchListener" /> </listeners> </phpunit>
class SomeTestCase extends \PHPUnit_Framework_TestCase { use \JClaveau\PHPUnit\Framework\UsageConstraintTrait; // adds the asserts methods /** */ public function test_usages() { // ... $this->assertExecutionTimeBelow(1.5); // seconds $this->assertMemoryUsageBelow('1M'); // This trait also provides two methods to help knowing the current // memory usage and duration $this->getMemoryUsage(); $this->getExecutionTime(); } }
TODO
- Integrate SpeedTrap and adds MemoryTrap
- Investigate xhprof integration and asserts on number of calls / execution time of specific methods/functions
Inspiration
- https://github.com/usernam3/phpunit_stopwatch_annotations
- https://github.com/johnkary/phpunit-speedtrap
License
phpunit-profile-asserts is available under the MIT License.