Home

Awesome

CakePHP TestHelper plugin

CI Coverage Status Latest Stable Version Minimum PHP Version License Total Downloads Coding Standards

Browser based addons for your test driven development.

Note: This branch is for CakePHP 5.0+. See version map for details.

Motivation

After 2.x=>3.x, the "web-tester" has been removed. It was, for certain cases, however, quite useful. This aims to bring back a part of it.

The CLI also doesn't allow a good overview. Even with auto-complete, you have to type almost everything out. With a browser backend generating tests or running them is just a simple mouse click.

You have an overview of your classes and the test classes to it. If there is one missing, you can easily "bake" it from this web backend. It internally uses Bake plugin as well as your preferred theme.

Further useful addons

Installation

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

composer require --dev dereuromark/cakephp-test-helper

Note: This is not meant for production, so make sure you use the --dev flag and install it as development-only tool.

Setup

Don't forget to load it under your bootstrap function in Application.php:

if (Configure::read('debug')) {
    $this->addPlugin('TestHelper');
}

This will also load the routes.

non-dev mode

In certain apps it can be useful to have some of the helper functionality available also for staging and prod. Here you must make sure then to not load the routes, though:

$this->addPlugin('TestHelper', ['routes' => Configure::read('debug')]);

And here you must use composer require without --dev flag then.

Usage

Navigate to /test-helper backend and select the app or plugin you want to check. You can then with a single click

Supported class types:

Feel free to help out improving and completing this test helper plugin.

Limitations

Executing the tests and coverage from the web backend usually can not work for long-running tests due to the timeout issues. Make sure you raise the apache/nginx settings here if you want to use this functionality here.

The focus is on providing an overview and quickly generating the desired classes with a single mouse click.