[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/cakephp/codeception/master/README.md [Back]  [Original]

CakePHP 3 Codeception Module
============================

[![Build Status](https://img.shields.io/travis/com/cakephp/codeception?style=flat-square)](https://travis-ci.com/cakephp/codeception)
[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](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

Web Proxy Viewer  |  New URL  |  Original Page