Download the PHP package facile-it/doctrine-test-module without Composer
On this page you can find all versions of the php package facile-it/doctrine-test-module. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download facile-it/doctrine-test-module
More information about facile-it/doctrine-test-module
Files in facile-it/doctrine-test-module
Package doctrine-test-module
Short Description Laminas Framework module that provides features that help you run your Laminas-based App's testsuite more efficiently with isolated tests
License MIT
Homepage https://github.com/facile-it/doctrine-test-module
Informations about the package doctrine-test-module
DoctrineTestModule
Laminas module that provides features that help you run your Laminas App's testsuite more efficiently with isolated tests.
Based on Symfony's doctrine-test-bundle.
It provides a StaticDriver
that will wrap your originally configured Driver
class (like DBAL\Driver\PDOMysql\Driver
) and keeps a database connection statically in the current php process.
With the help of a PHPUnit extension class it will begin a transaction before every testcase and roll it back again after the test finished for all configured DBAL connections. This results in a performance boost as there is no need to rebuild the schema, import a backup SQL dump or re-insert fixtures before every testcase. As long as you avoid issuing DDL queries that might result in implicit transaction commits (Like ALTER TABLE
, DROP TABLE
etc; see https://wiki.postgresql.org/wiki/Transactional_DDL_in_PostgreSQL:_A_Competitive_Analysis) your tests will be isolated and all see the same database state.
How to install and use this Module?
-
install via composer
- Enable the module for your test environment in your
config/application.php
Using the Module with PHPUnit
-
Add the Extension to your PHPUnit XML config
-
PHPUnit 9:
- PHPUnit 10+:
-
-
Make sure you also have
phpunit/phpunit
available as adev
dependency (versions 9 and 10 are supported with the built-in extension) to run your tests. - That's it! From now on whatever changes you do to the database within each single testcase are automatically rolled back for you :blush:
Configuration
The module exposes a configuration that looks like this by default:
Setting enable_static_connection: true
means it will enable it for all configured doctrine dbal connections.
You can selectively only enable it for some connections if required:
All versions of doctrine-test-module with dependencies
ext-json Version *
ext-pdo Version *
phpunit/phpunit Version ^9.6.22
doctrine/cache Version ^1.10 || ^2.0
doctrine/dbal Version ^2.11.3 || ^3.0
doctrine/doctrine-module Version ^4.0 || ^5.0 || ^6.0
doctrine/doctrine-orm-module Version ^3.0 || ^4.0 || ^5.0 || ^6.0
psr/container Version ^1.0 || ^2.0