Skip to content
Fetching contributors…
Cannot retrieve contributors at this time
114 lines (79 sloc) 2.8 KB


Build Status

Codeception is a new PHP full-stack testing framework. Inspired by BDD, it provides you an absolutely new way of writing acceptance, functional and even unit tests. Powered by PHPUnit 3.6.

At a Glance

Describe what you test and how you test it. Use PHP to write descriptions faster.

Run tests and see what actions were taken and what results were seen.

Sample acceptance test


$I = new TestGuy($scenario);
$I->wantTo('create wiki page');
$I->see('New Page');
$I->submitForm('form#new_page', array('title' => 'Tree of Life Movie Review','body' => "Next time don't let Hollywood create art-house!"));
$I->see('page created'); // notice generated
$I->see('Tree of Life Movie Review','h1'); // head of page of is our title
$I->seeInCurrentUrl('pages/tree-of-life-mobie-review'); // slug is generated
$I->seeInDatabase('pages', array('title' => 'Tree of Life Movie Review')); // data is stored in database

Ok, as for unit test similar approach may seem weird, but...

Take a look at this:

Sample unit test

class UserControllerCest {
    public $class = 'UserController';

    public function createAction(CodeGuy $I)
        $I->haveFakeClass($userController = Stub::makeEmptyExcept('UserController'));
        $I->executeTestedMethodOn($userController, array('username' => 'MilesDavis', 'email' => ''))
        $I->seeMethodInvoked($userController, 'renderHtml')
        $I->seeInDabatase('users', array('username' => 'MilesDavis'));

Anyway, if you don't really like writing unit tests in DSL, Codeception can run PHPUnit tests natively.


Documentation on Github

Documentation is currently included within the project. Look for it in the 'docs' directory.



Install latest PEAR package from GitHub:

pear channel-discover
pear install codeception/Codeception


Download codecept.phar

Copy it into your project.

Run CLI utility:

php codecept.phar

Getting Started

If you successfully installed Codeception, run this command:

codecept install

this will install all dependency tools like PHPUnit and Mink

codecept bootstrap

this will create a default directory structure and default test suites

codecept build

This will generate Guy-classes, in order to make autocomplete work.

See Documentation for more information.



(c) Michael Bodnarchuk "Davert" 2011

Jump to Line
Something went wrong with that request. Please try again.