diff options
Diffstat (limited to 'docs/tests.markdown')
-rw-r--r-- | docs/tests.markdown | 176 |
1 files changed, 0 insertions, 176 deletions
diff --git a/docs/tests.markdown b/docs/tests.markdown deleted file mode 100644 index 31937f33..00000000 --- a/docs/tests.markdown +++ /dev/null @@ -1,176 +0,0 @@ -How to run units and functionals tests? -======================================= - -[PHPUnit](https://phpunit.de/) is used to run automatic tests on Kanboard. - -You can run tests across different databases (Sqlite, Mysql and Postgresql) to be sure that the result is the same everywhere. - -Requirements ------------- - -- Linux/Unix machine -- PHP command line -- PHPUnit installed -- Mysql and Postgresql (optional) - -Install the latest version of PHPUnit -------------------------------------- - -Simply download the PHPUnit PHAR et copy the file somewhere in your `$PATH`: - -```bash -wget https://phar.phpunit.de/phpunit.phar -chmod +x phpunit.phar -sudo mv phpunit.phar /usr/local/bin/phpunit -phpunit --version -PHPUnit 4.2.6 by Sebastian Bergmann. -``` - -Running unit tests ------------------- - -### Testing with Sqlite - -Sqlite tests use a in-memory database, nothing is written on the filesystem. - -The config file is `tests/units.sqlite.xml`. -From your Kanboard directory, run the command `phpunit -c tests/units.sqlite.xml`. - -Example: - -```bash -phpunit -c tests/units.sqlite.xml - -PHPUnit 4.2.6 by Sebastian Bergmann. - -Configuration read from /Volumes/Devel/apps/kanboard/tests/units.sqlite.xml - -................................................................. 65 / 74 ( 87%) -......... - -Time: 9.05 seconds, Memory: 17.75Mb - -OK (74 tests, 6145 assertions) -``` - -**NOTE:** PHPUnit is already included in the Vagrant environment - -### Testing with Mysql - -You must have Mysql or MariaDb installed on localhost. - -By default, those credentials are used: - -- Hostname: **localhost** -- Username: **root** -- Password: none -- Database: **kanboard_unit_test** - -For each execution the database is dropped and created again. - -The config file is `tests/units.mysql.xml`. -From your Kanboard directory, run the command `phpunit -c tests/units.mysql.xml`. - -Example: - -```bash -phpunit -c tests/units.mysql.xml - -PHPUnit 4.2.6 by Sebastian Bergmann. - -Configuration read from /Volumes/Devel/apps/kanboard/tests/units.mysql.xml - -................................................................. 65 / 74 ( 87%) -......... - -Time: 49.77 seconds, Memory: 17.50Mb - -OK (74 tests, 6145 assertions) -``` - -### Testing with Postgresql - -You must have Postgresql installed on localhost. - -By default, those credentials are used: - -- Hostname: **localhost** -- Username: **postgres** -- Password: none -- Database: **kanboard_unit_test** - -Be sure to allow the user `postgres` to create and drop databases. -For each execution the database is dropped and created again. - -The config file is `tests/units.postgres.xml`. -From your Kanboard directory, run the command `phpunit -c tests/units.postgres.xml`. - -Example: - -```bash -phpunit -c tests/units.postgres.xml - -PHPUnit 4.2.6 by Sebastian Bergmann. - -Configuration read from /Volumes/Devel/apps/kanboard/tests/units.postgres.xml - -................................................................. 65 / 74 ( 87%) -......... - -Time: 52.66 seconds, Memory: 17.50Mb - -OK (74 tests, 6145 assertions) -``` - -Running functionals tests -------------------------- - -Actually only the API calls are tested. - -Real HTTP calls are made with those tests. -So a local instance of Kanboard is necessary and must listen on `http://localhost:8000`. - -Don't forget that all data will be removed/altered by the test suite. -Moreover the script will reset and set a new API key. - -1. Start a local instance of Kanboard `php -S 127.0.0.1:8000` -2. Run the test suite from another terminal - -The same method as above is used to run tests across different databases: - -- Sqlite: `phpunit -c tests/functionals.sqlite.xml` -- Mysql: `phpunit -c tests/functionals.mysql.xml` -- Postgresql: `phpunit -c tests/functionals.postgres.xml` - -Example: - -```bash -phpunit -c tests/functionals.sqlite.xml - -PHPUnit 4.2.6 by Sebastian Bergmann. - -Configuration read from /Volumes/Devel/apps/kanboard/tests/functionals.sqlite.xml - -.......................................... - -Time: 1.72 seconds, Memory: 4.25Mb - -OK (42 tests, 160 assertions) -``` - -Continuous Integration with Travis-ci -------------------------------------- - -After each commit pushed on the main repository, unit tests are executed across 5 different versions of PHP: - -- PHP 7.0 -- PHP 5.6 -- PHP 5.5 -- PHP 5.4 -- PHP 5.3 - -Each version of PHP is tested against the 3 supported database: Sqlite, Mysql and Postgresql. - -That mean we run 15 jobs each time the repository is updated. The execution time is around 25 minutes. - -The Travis config file `.travis.yml` is located on the root directory of Kanboard. |