CakePHP 3 Codeception Module
============================
[](https://travis-ci.com/cakephp/codeception)
[](LICENSE)
:warning: This repository is archived and is no longer maintained.
A [codeception](http://codeception.com) module to test your CakePHP 3 powered application. Using Codeception with CakePHP opens up a whole new set of testing capabilities.
##### Front-end testing
_(i.e. browser-based workflow tests)_
- [[Functional Tests]](http://codeception.com/docs/05-FunctionalTests)
- does the App run the way we expect
- [[Acceptance Tests]](http://codeception.com/docs/04-AcceptanceTests)
- does the App do what the customer/user expects
##### Back-end testing
_(i.e. direct, internal method tests)_
- [[API Tests]](http://codeception.com/docs/10-WebServices)
- does the App's API work
- [[Unit Tests]](http://codeception.com/docs/06-UnitTests)
- do the App's internal functions do what we expect
Usage
-----
From a CakePHP application, run the following from the command-line:
```console
$ composer require --dev cakephp/codeception:dev-master && composer run-script post-install-cmd
```
If you are developing a plugin, add the post-install script to your `composer.json` first:
```json
{
"scripts": {
"post-install-cmd": "Cake\\Codeception\\Console\\Installer::customizeCodeceptionBinary"
}
}
```
Once installed, you can now run `bootstrap` which will create all the codeception required files
in your application:
```console
$ vendor/bin/codecept bootstrap
```
This creates the following files/folders in your `app` directory:
```
codeception.yml
src
TestSuite
Codeception
| AcceptanceTester.php
| FunctionalTester.php
| UnitTester.php
| Helper
Acceptance.php
Functional.php
Unit.php
| _generated
| .gitignore
tests
Acceptance.suite.yml
Functional.suite.yml
Unit.suite.yml
Acceptance
bootstrap.php
Fixture
dump.sql
Functional
bootstrap.php
Unit
bootstrap.php
```
As you might have noticed, the CakePHP implementation differs in a couple things:
- uses CamelCase suite names (`Functional` vs. `functional`)
- uses `bootstrap.php`, no underscore prefix (vs. `_bootstrap.php`)
- uses `src/TestSuite/Codeception` for custom modules (helpers) (vs. `tests/_helpers`)
- uses `tmp/tests` to store logs (vs. `tests/_logs`)
- uses `tests/Fixture` to fixture data (vs. `tests/_data`)
- uses `tests/Envs` to fixture data (vs. `tests/_envs`)
- adds a `.gitignore` to never track auto-generated files
- adds custom templates for various generated files using the `codecept` binary
To better understand how Codeception tests work, please check the [official documentation][codeception_docs].
[codeception_docs]:http://codeception.com/docs/01-Introduction
## Example Cept
```php