mirror of
https://github.com/phpbb/phpbb.git
synced 2025-02-25 12:33:29 +01:00
PHPBB3-11015 This allows us to just create the object without having to include the driver first. However, it also means that users must specify the full class name in config.php
98 lines
3.0 KiB
Plaintext
98 lines
3.0 KiB
Plaintext
Running Tests
|
|
=============
|
|
|
|
Prerequisites
|
|
=============
|
|
|
|
PHPUnit
|
|
-------
|
|
|
|
phpBB unit tests use PHPUnit framework. Version 3.5 or better is required
|
|
to run the tests. PHPUnit prefers to be installed via PEAR; refer to
|
|
http://www.phpunit.de/ for more information.
|
|
|
|
PHP extensions
|
|
--------------
|
|
|
|
Unit tests use several PHP extensions that board code does not use. Currently
|
|
the following PHP extensions must be installed and enabled to run unit tests:
|
|
|
|
- ctype
|
|
|
|
Database Tests
|
|
--------------
|
|
|
|
By default all tests requiring a database connection will use sqlite. If you
|
|
do not have sqlite installed the tests will be skipped. If you wish to run the
|
|
tests on a different database you have to create a test_config.php file within
|
|
your tests directory following the same format as phpBB's config.php. An
|
|
example for mysqli can be found below. More information on configuration
|
|
options can be found on the wiki (see below).
|
|
|
|
<?php
|
|
$dbms = 'phpbb_db_driver_mysqli';
|
|
$dbhost = 'localhost';
|
|
$dbport = '';
|
|
$dbname = 'database';
|
|
$dbuser = 'user';
|
|
$dbpasswd = 'password';
|
|
|
|
It is possible to have multiple test_config.php files, for example if you
|
|
are testing on multiple databases. You can specify which test_config.php file
|
|
to use in the environment as follows:
|
|
|
|
$ PHPBB_TEST_CONFIG=tests/test_config.php phpunit
|
|
|
|
Alternatively you can specify parameters in the environment, so e.g. the
|
|
following will run phpunit with the same parameters as in the shown
|
|
test_config.php file:
|
|
|
|
$ PHPBB_TEST_DBMS='mysqli' PHPBB_TEST_DBHOST='localhost' \
|
|
PHPBB_TEST_DBNAME='database' PHPBB_TEST_DBUSER='user' \
|
|
PHPBB_TEST_DBPASSWD='password' phpunit
|
|
|
|
Special Database Cases
|
|
----------------------
|
|
In order to run tests on some of the databases that we support, it will be
|
|
necessary to provide a custom DSN string in test_config.php. This is only
|
|
needed for MSSQL 2000+ (PHP module), MSSQL via ODBC, and Firebird when
|
|
PDO_Firebird does not work on your system
|
|
(https://bugs.php.net/bug.php?id=61183). The variable must be named $custom_dsn.
|
|
|
|
Examples:
|
|
Firebird using http://www.firebirdsql.org/en/odbc-driver/
|
|
$custom_dsn = "Driver={Firebird/InterBase(r) driver};dbname=$dbhost:$dbname";
|
|
|
|
MSSQL
|
|
$custom_dsn = "Driver={SQL Server Native Client 10.0};Server=$dbhost;Database=$dbname";
|
|
|
|
The other fields in test_config.php should be filled out as you would normally
|
|
to connect to that database in phpBB.
|
|
|
|
Additionally, you will need to be running the DbUnit fork from
|
|
https://github.com/phpbb/dbunit/tree/phpbb.
|
|
|
|
Running
|
|
=======
|
|
|
|
Once the prerequisites are installed, run the tests from the project root
|
|
directory (above phpBB):
|
|
|
|
$ phpunit
|
|
|
|
Slow tests
|
|
--------------
|
|
|
|
Certain tests, such as the UTF-8 normalizer or the DNS tests tend to be slow.
|
|
Thus these tests are in the `slow` group, which is excluded by default. You can
|
|
enable slow tests by copying the phpunit.xml.all file to phpunit.xml. If you
|
|
only want the slow tests, run:
|
|
|
|
$ phpunit --group slow
|
|
|
|
More Information
|
|
================
|
|
|
|
Further information is available on phpbb wiki:
|
|
http://wiki.phpbb.com/Unit_Tests
|