Manual:PHP unit testing
PHPUnit testing
Contents
- Running the tests
- Generate code coverage
- Writing testable PHP code
- Writing tests
- Continuous integration
- Understanding build failures
- Appendix
(how to help, resources..)
Tools
Introduction
We do unit and integration testing of MediaWiki's PHP code base using the PHPUnit framework. View MediaWiki core's test coverage.
MediaWiki core's PHP unit and integration tests are in the tests/phpunit
directory.
When adding new tests, unit tests should be placed in tests/phpunit/unit
and integration tests should be placed in tests/phpunit/integration
The directory structure roughly matches that of the code being tested.
For example: you can find the unit tests for file includes/libs/JavaScriptMinifier.php
in tests/phpunit/unit/includes/libs/JavaScriptMinifierTest.php
.
Extensions should have PHPUnit tests in a tests/phpunit
subdirectory, using subdirectories to separate unit and integration tests, e.g. extensions/{extensionName}/tests/phpunit/unit
and extensions/{extensionName}/tests/phpunit/integration
.
Use the navigation table or the links below to browse through this manual.