jclaveau/phpunit-profile-asserts

Provides asserts against memory usage and execution time for PHPUnit

Maintainers

Package info

github.com/jclaveau/phpunit-profile-asserts

pkg:composer/jclaveau/phpunit-profile-asserts

Statistics

Installs: 1 520

Dependents: 2

Suggesters: 0

Stars: 2

Open Issues: 1

1.2.0 2026-03-04 19:25 UTC

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.

Tests

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

License

phpunit-profile-asserts is available under the MIT License.