2017 © Pedro Peláez
 

library doctrine-test-module

Zend Framework module that provides features that help you run your Zend-framework-based App's testsuite more efficiently with isolated tests

image

facile-it/doctrine-test-module

Zend Framework module that provides features that help you run your Zend-framework-based App's testsuite more efficiently with isolated tests

  • Tuesday, July 17, 2018
  • by thomasvargiu
  • Repository
  • 5 Watchers
  • 0 Stars
  • 13 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 3 Versions
  • 0 % Grown

The README.md

DoctrineTestModule

Laminas module that provides features that help you run your Laminas App's testsuite more efficiently with isolated tests., (*1)

Based on Symfony's doctrine-test-bundle., (*2)

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., (*3)

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., (*4)

How to install and use this Module?

  1. install via composer, (*5)

    composer require --dev facile-it/doctrine-test-module
    
  2. Enable the module for your test environment in your config/application.php, (*6)

    <?php
    
    return [
        'modules' => [
           'Facile\DoctrineTestModule',
        ],
    ];
    

Using the Module with PHPUnit

  1. Add the Extension to your PHPUnit XML config, (*7)

    • PHPUnit 9:, (*8)

      <phpunit>
          ...
          <extensions>
              <extension class="Facile\DoctrineTestModule\PHPUnit\PHPUnitExtension" />
          </extensions>
      </phpunit>
      
    • PHPUnit 10+:, (*9)

      <phpunit>
         ...
         <extensions>
             <bootstrap class="Facile\DoctrineTestModule\PHPUnit\PHPUnitExtension" />
         </extensions>
      </phpunit>
      
  2. Make sure you also have phpunit/phpunit available as a dev dependency (versions 9 and 10 are supported with the built-in extension) to run your tests., (*10)

  3. That's it! From now on whatever changes you do to the database within each single testcase are automatically rolled back for you :blush:, (*11)

Configuration

The module exposes a configuration that looks like this by default:, (*12)

use Facile\DoctrineTestModule\ConfigProvider;

return [
    ConfigProvider::CONFIGURATION: [
        'enable_static_connection' => true,
    ]
];

Setting enable_static_connection: true means it will enable it for all configured doctrine dbal connections., (*13)

You can selectively only enable it for some connections if required:, (*14)

use Facile\DoctrineTestModule\ConfigProvider;

return [
    ConfigProvider::CONFIGURATION: [
        'enable_static_connection' => [
            'orm_default' => true,
        ],
    ]
];

The Versions

17/07 2018

dev-master

9999999-dev https://github.com/facile-it/doctrine-test-module

Zend Framework module that provides features that help you run your Zend-framework-based App's testsuite more efficiently with isolated tests

  Sources   Download

MIT

The Requires

 

The Development Requires

phpunit zend zend framework doctrine

17/07 2018

0.1.1

0.1.1.0 https://github.com/facile-it/doctrine-test-module

Zend Framework module that provides features that help you run your Zend-framework-based App's testsuite more efficiently with isolated tests

  Sources   Download

MIT

The Requires

 

The Development Requires

phpunit zend zend framework doctrine

17/07 2018

0.1.0

0.1.0.0 https://github.com/facile-it/doctrine-test-module

Zend Framework module that provides features that help you run your Zend-framework-based App's testsuite more efficiently with isolated tests

  Sources   Download

MIT

The Requires

 

The Development Requires

phpunit zend zend framework doctrine