mirror of
https://github.com/moodle/moodle.git
synced 2025-01-18 14:03:52 +01:00
PHPUnit testing support in Moodle
Documentation
Installation
- install PEAR package manager - see PEAR Manual
- install PHPUnit package and phpunit/DbUnit extension - see PHPUnit installation documentation
- edit main config.php - add
$CFG->phpunit_prefix
and$CFG->phpunit_dataroot
- see config-dist.php - execute
php admin/tool/phpunit/cli/init.php
to initialise the test environemnt, 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
How to add more tests?
- create
tests
directory in your plugin - add
local/mytest/tests/my_test.php
file withlocal_my_testcase
class that extendsbasic_testcase
oradvanced_testcase
- add some test_*() methods
- execute your new test case
phpunit local_my_testcase local/mytest/tests/my_test.php
- execute
php admin/tool/phpunit/cli/init.php
to get the plugin tests included in main phpunit.xml configuration file
How to convert existing tests?
- create new test file in
xxx/tests/yyy_test.php
- copy contents of the old test file
- replace
extends UnitTestCase
withextends basic_testcase
- fix setUp(), tearDown(), asserts, etc.