/reload-annotation-bundle

A Symfony bundle providing a PHPUnit extension reloading the database if an annotation is present on test methods.

Primary LanguagePHPMIT LicenseMIT

Most likely obsolete for anyone

https://github.com/ruano-a/selective-test-isolation-bundle uses rollback, which is faster and better.

ReloadAnnotationBundle

A Symfony bundle providing a PHPUnit extension reloading the database if an annotation is present on test methods. It only works with a PHPUnit which version is >= 7.5 .

Configuration

composer require --dev ruano_a/reload-annotation-bundle

Add the bundle in bundles.php:

if (in_array($env, ['dev', 'test'])) {
    ...
    if ($env === 'test') {
        $bundles[] = new ruano_a\ReloadAnnotationBundle\ReloadAnnotationBundle();
    }
}

Add the extension in your xml config (phpunit.xml)

    <phpunit>
        ...
        <extensions>
            <extension class="ruano_a\ReloadAnnotationBundle\PHPUnit\PHPUnitExtension" />
        </extensions>
    </phpunit>

And that's it.

Available annotations

  • ReloadDatabaseBefore
  • ReloadDatabaseAfter

Notes

This bundle can't work with a PHPUnit version prior to 7.5 because the listener system doesn't seem to let you get the test method informations. It is currently not configurable, I might make it one day, if you don't want to wait, contact me. It has been made for my personal use, but for most common cases, I advise you to use this bundle: https://github.com/dmaicher/doctrine-test-bundle that is much more optimized, but doesn't let you choose when to perform the rollbacks.