diff --git a/src/DAMA/DoctrineTestBundle/Doctrine/DBAL/AbstractStaticDriver.php b/src/DAMA/DoctrineTestBundle/Doctrine/DBAL/AbstractStaticDriver.php index f97f6e3..5522790 100644 --- a/src/DAMA/DoctrineTestBundle/Doctrine/DBAL/AbstractStaticDriver.php +++ b/src/DAMA/DoctrineTestBundle/Doctrine/DBAL/AbstractStaticDriver.php @@ -17,6 +17,11 @@ abstract class AbstractStaticDriver implements Driver, VersionAwarePlatformDrive */ protected static $connections = []; + /** + * @var bool + */ + protected static $manualOperations = false; + /** * @var bool */ @@ -58,6 +63,16 @@ public static function isKeepStaticConnections(): bool return self::$keepStaticConnections; } + public static function setManualOperations(bool $manualOperations): void + { + self::$manualOperations = $manualOperations; + } + + public static function isManualOperations(): bool + { + return self::$manualOperations; + } + public static function beginTransaction(): void { foreach (self::$connections as $con) { diff --git a/src/DAMA/DoctrineTestBundle/PHPUnit/PHPUnitExtension.php b/src/DAMA/DoctrineTestBundle/PHPUnit/PHPUnitExtension.php index 1fd2b76..a0dd017 100644 --- a/src/DAMA/DoctrineTestBundle/PHPUnit/PHPUnitExtension.php +++ b/src/DAMA/DoctrineTestBundle/PHPUnit/PHPUnitExtension.php @@ -17,12 +17,16 @@ public function executeBeforeFirstTest(): void public function executeBeforeTest(string $test): void { - StaticDriver::beginTransaction(); + if (!StaticDriver::isManualOperations()) { + StaticDriver::beginTransaction(); + } } public function executeAfterTest(string $test, float $time): void { - StaticDriver::rollBack(); + if (!StaticDriver::isManualOperations()) { + StaticDriver::rollBack(); + } } public function executeAfterLastTest(): void