This repository has been archived on 2024-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
khosb/includes/kohana/modules/unittest
2011-05-03 09:49:01 +10:00
..
classes Added Kohana v3.0.8 2011-05-03 09:49:01 +10:00
config Added Kohana v3.0.8 2011-05-03 09:49:01 +10:00
guide Added Kohana v3.0.8 2011-05-03 09:49:01 +10:00
views/unittest Added Kohana v3.0.8 2011-05-03 09:49:01 +10:00
example.phpunit.xml Added Kohana v3.0.8 2011-05-03 09:49:01 +10:00
init.php Added Kohana v3.0.8 2011-05-03 09:49:01 +10:00
README.markdown Added Kohana v3.0.8 2011-05-03 09:49:01 +10:00
tests.php Added Kohana v3.0.8 2011-05-03 09:49:01 +10:00

Kohana-PHPUnit integration

This module integrates PHPUnit with Kohana.

If you look through any of the tests provided in this module you'll probably notice all theHorribleCamelCase. I've chosen to do this because it's part of the PHPUnit coding conventions and is required for certain features such as auto documentation.

Requirements

Optional extras

  • The Archive module is required if you want to download code coverage reports from the web ui, however you can also view them without downloading.

Installation

Step 0: Download this module!

To get it from git execute the following command in the root of your project:

$ git submodule add git://github.com/kohana/unittest.git modules/unittest

And watch the gitorious magic...

Of course, you can always download the code from the github project as an archive.

The following instructions will assume you've moved it to modules/unittest, if you haven't then you should update all paths accordingly.

Step 1: Enable this module in your bootstrap file:

/**
 * Enable modules. Modules are referenced by a relative or absolute path.
 */
Kohana::modules(array(
	'unittest' => MODPATH.'unittest',  // PHPUnit integration
	));

Step 2: In your app's bootstrap file modify the lines where the request is handled, which by default looks like:

/**
 * Execute the main request using PATH_INFO. If no URI source is specified,
 * the URI will be automatically detected.
 */
echo Request::instance($_SERVER['PATH_INFO'])
	->execute()
	->send_headers()
	->response;

To:

if ( ! defined('SUPPRESS_REQUEST'))
{
	/**
	 * Execute the main request using PATH_INFO. If no URI source is specified,
	 * the URI will be automatically detected.
	 */
	echo Request::instance($_SERVER['PATH_INFO'])
		->execute()
		->send_headers()
		->response;
}

Step 3: Create a folder called unittest in your app's cache dir (APPPATH/cache). If you don't want to use this path for storing generated reports, skip this step and change the config file.

Note: make sure the settings in config/unittest.php are correct for your environment. If they aren't, copy the file to application/config/unittest.php and change the values accordingly.

Step 4: Start testing!

You can find more info and tutorials in the guide/ directory.