project:unittests
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
project:unittests [2025/07/21 01:31] – created mnewnham | project:unittests [2025/08/01 00:37] (current) – mnewnham | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Unit Testing ====== | ====== Unit Testing ====== | ||
+ | <WRAP warning> | ||
Unit testing can be done using PHPUnit testing. Testing can be done against any database that is available that you have admin rights on. The test creates tables, populates them with small amounts of data and drops them. | Unit testing can be done using PHPUnit testing. Testing can be done against any database that is available that you have admin rights on. The test creates tables, populates them with small amounts of data and drops them. | ||
+ | ===== Setup ===== | ||
+ | Configuration information for the tests is held in a configuration file adodb-unittest.ini. The file can be located anywhere in the PHP include path. | ||
+ | |||
+ | ==== ADOdb Section ==== | ||
+ | If the ADOdb section is defined, and the item directory is set, the the tests can be run against an ADOdb installation set locally. This is useful if ADOdb is embedded into a different application | ||
+ | |||
+ | < | ||
+ | [ADOdb] | ||
+ | directory=/ | ||
+ | </ | ||
+ | |||
+ | If the section is not defined, it assumes that the ADOdb installation is the parent directory of the unit test | ||
+ | |||
+ | < | ||
+ | /opt/ADOdb | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | ==== Blob Section ==== | ||
+ | This section must be defined, either with the path name to a binary file, such as a jpeg file that can be used for read-write testing. If set to false, all blob tests are skipped. | ||
+ | |||
+ | < | ||
+ | [blob] | ||
+ | testBlob=c:/ | ||
+ | </ | ||
+ | |||
+ | ==== Driver Section ==== | ||
+ | The driver configuration is based on the driver name. | ||
+ | |||
+ | < | ||
+ | [mysqli] | ||
+ | dsn= | ||
+ | host=mysql-server.com | ||
+ | user=root | ||
+ | password=somepassword | ||
+ | database=adodb-tester | ||
+ | debug=0 | ||
+ | parameters= | ||
+ | active=1 | ||
+ | </ | ||
+ | |||
+ | ^Setting^Description^ | ||
+ | |dsn|Either use a connection DSN or specify the parameters usual| | ||
+ | |host|The hostname associated with the database| | ||
+ | |user|The connection username| | ||
+ | |password|The connection password| | ||
+ | |debug|Sets the debug mode| | ||
+ | |parameters|To set parameters normally set by '' | ||
+ | |active|If a run-time parameter of the driver is not passed of the PHPunit version > 9, then the test is run against the first driver where the active flag is set to true| | ||
+ | |||
+ | ==== Meta Section ==== | ||
+ | Unless explicitly enabled, the test to create new database using the // | ||
+ | |||
+ | < | ||
+ | skipDbCreation=0 | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Caching Section ==== | ||
+ | Unless explicitly enabled, cache functions such as // | ||
+ | |||
+ | < | ||
+ | [caching] | ||
+ | cacheMethod=1 | ||
+ | cacheDir=c:/ | ||
+ | </ | ||
+ | |||
+ | To disable cache tests while leaving the section in place, '' | ||
+ | |||
+ | ==== Globals Section ==== | ||
+ | To test some date functions, the local timezone must be equal to the server timezone. To change the timezone temporarily for the test, set the following gloval parameter in adodb-unittest.ini. This should exactly match the format in php.ini. | ||
+ | |||
+ | < | ||
+ | [globals] | ||
+ | date.timezone = ' | ||
+ | </ | ||
+ | |||
+ | Any parameter saved into the **[globals]** section will be set using ini_set() | ||
+ | |||
+ | ===== Test Execution ===== | ||
+ | ==== PHPUnit 9 or lower ==== | ||
+ | < | ||
+ | phpunit unittest --bootstrap unittest/ | ||
+ | </ | ||
+ | |||
+ | Where the < | ||
+ | |||
+ | ==== PHPUnit 10 or higher ==== | ||
+ | < | ||
+ | phpunit unittest --bootstrap unittest/ | ||
+ | </ | ||
+ | |||
+ | The driver to test must have the **active** flag defined in the driver section | ||
+ | |||
+ | |||
+ | |||
project/unittests.1753054280.txt.gz · Last modified: by mnewnham