CIUnit is a cool bridge between your CodeIgniter application and phpUnit.
Download the current fooStack v0.17 - for CI 1.7.2 here!
Download the slightly outdated fooStack v0.15 here - for CI 1.6.X, 1.7.1
For v0.15.zip please be aware that the installation is slightly different! Have a look at the index.html file included in fooStack_v0.15.zip(The cutting edge development version and older versions are accessible through the public mercurial repository at bitbucket.org / ciunit)
$active_group =in your database.php ("YourProject/system/application/config" directory) with:
$env_used = 'default'; //name of your development setting if(defined('CIUnit_Version')){ $env_used .= '_test'; } $active_group = $env_used;
Congratulations you are done with setting up fooStack!
Oh, wait, do you have phpUnit already installed?
http://www.phpunit.de/manual/current/en/installation.html
Once you have fooStack and phpUnit running:
Given you have tables in your test database (you should have the same as in the development database!), you can generate empty yaml fixtures like so: From within the tests directory type (make sure the fixtures directory is writable!):
php generate fixturesThe fixture files are then available in the tests/fixtures directory.
Using the fixtures is easy: Fill the yaml fixture files with the fixture data needed (yaml is a easily readable format for your data). Once this is done, call e.g.
$this->dbfixt('items', 'comments', 'users');from within the test setup function. Then these table fixtures are assured to be loaded into your test database AND are available as test variables like so:
$this->items_fixt, $this->comments_fixt, $this->users_fixt.E.g the second row of data in the comments table in your tests database is also available through
$this->comments_fixt['second'];
Without writing any tests, typing "phpunit CIUnitAllTests.php" from within the "YourProject/application/tests/ciunit" directory will already run a couple of tests - these make sure that CIUnit is correctly installed and works as expected.