Merge branch 'w47_MDL-36701_m24_composer' of git://github.com/skodak/moodle

This commit is contained in:
Aparup Banerjee 2012-11-22 16:23:20 +08:00
commit 020e338dee
6 changed files with 61 additions and 30 deletions

View file

@ -88,10 +88,28 @@ class Hint_ResultPrinter extends PHPUnit_TextUI_ResultPrinter {
$file = substr($file, strlen($cwd)+1);
}
$executable = 'phpunit';
if (phpunit_bootstrap_is_cygwin()) {
$file = str_replace('\\', '/', $file);
$executable = 'phpunit.bat';
$executable = null;
if (isset($_SERVER['argv'][0])) {
if (preg_match('/phpunit(\.bat|\.cmd)?$/', $_SERVER['argv'][0])) {
$executable = $_SERVER['argv'][0];
for($i=1;$i<count($_SERVER['argv']);$i++) {
if (!isset($_SERVER['argv'][$i])) {
break;
}
if (in_array($_SERVER['argv'][$i], array('--colors', '--verbose', '-v', '--debug', '--strict'))) {
$executable .= ' '.$_SERVER['argv'][$i];
}
}
}
}
if (!$executable) {
$executable = 'phpunit';
if (phpunit_bootstrap_is_cygwin()) {
$file = str_replace('\\', '/', $file);
$executable = 'phpunit.bat';
}
}
$this->write("\nTo re-run:\n $executable $testName $file\n");

View file

@ -5,22 +5,35 @@ PHPUnit testing support in Moodle
Documentation
-------------
* [Moodle Dev wiki](http://docs.moodle.org/dev/PHPUnit)
* [PHPUnit online documentaion](http://www.phpunit.de/manual/current/en/)
* [PHPUnit online documentation](http://www.phpunit.de/manual/current/en/)
* [Composer dependency manager](http://getcomposer.org/)
Installation
------------
Composer installation
---------------------
Composer is a new dependency manager for PHP projects.
It installs PHP libraries into /vendor/ subdirectory inside your moodle dirroot.
1. install Composer - http://getcomposer.org/doc/00-intro.md
2. go to your moodle dirroot and execute `php composer.phar install`
PEAR installation (not recommended)
-----------------------------------
PEAR is a framework and distribution system for reusable PHP components.
The packages installed via PEAR are available in all PHP projects.
1. install PEAR package manager - see [PEAR Manual](http://pear.php.net/manual/en/installation.php)
2. install PHPUnit package and phpunit/DbUnit extension - see [PHPUnit installation documentation](http://www.phpunit.de/manual/current/en/installation.html)
3. edit main config.php - add `$CFG->phpunit_prefix` and `$CFG->phpunit_dataroot` - see config-dist.php
4. execute `php admin/tool/phpunit/cli/init.php` to initialise the test environemnt, repeat it after every upgrade or installation of plugins
4. execute `php admin/tool/phpunit/cli/init.php` to initialise the test environment, repeat it after every upgrade or installation of plugins
Test execution
--------------
* execute `phpunit` from dirroot directory
* you can execute a single test case class using class name followed by path to test file `phpunit core_phpunit_basic_testcase lib/tests/phpunit_test.php`
* it is also possible to create custom configuration files in xml format and use `phpunit -c mytestsuites.xml`
* execute `vendor/bin/phpunit` (or `phpunit` if you use PEAR) from dirroot directory
* you can execute a single test case class using class name followed by path to test file `vendor/bin/phpunit core_phpunit_basic_testcase lib/tests/phpunit_test.php`
* it is also possible to create custom configuration files in xml format and use `vendor/bin/phpunit -c mytestsuites.xml`
How to add more tests?