TestDatasourceSwitcher plugin for CakePHP 3

v1.0.1 2019-04-19 10:48 UTC

This package is auto-updated.

Last update: 2021-02-09 11:34:27 UTC


Software License Build Status Codecov Latest Stable Version

Switching datasouce connections to test, when the request have a specific Cookie.


You can install this plugin into your CakePHP application using composer.

The recommended way to install composer packages is:

composer require --dev nojimage/cakephp-test-datasource-switcher

CakePHP >= 3.3 in src/Application.php

    public function middleware($middlewareQueue)
            // Catch any exceptions in the lower layers,
            // and make an error page/response

            // vvv ADD THIS LINE vvv
            ->add(new \TestDatasourceSwitcher\Middleware\DatasourceSwitchMiddleware())

            // Handle plugin/theme assets like CakePHP normally does.

            // Add routing middleware.
            ->add(new RoutingMiddleware($this));

        return $middlewareQueue;

CakePHP <= 3.2 in config/bootstrap.php

if (Configure::read('debug')) {
    \Cake\Routing\DispatcherFactory::add(new \TestDatasourceSwitcher\Routing\Filter\Switcher(['priority' => 1]));


eg. For the Codeception functional testcases.
(This sample is always connect to 'test' datasouces.

class FunctionalHelper extends \Codeception\Module

    public function _before(TestCase $test)
        $driver = $this->getModule('WebDriver');
        /* @var $dirver WebDriver */
        $driver->setCookie('__cakephp_test_connection', '1');



This software is released under the MIT License.

Copyright (c) 2015 ELASTIC Consultants Inc.