Автоматизированные тесты ======================== [PHPUnit](https://phpunit.de/) используется для запуска автоматизированных тестов в Канборд. Вы можете запускать тесты для разных баз данных (Sqlite, Mysql and Postgresql), чтобы убедится, что результаты будут одинаковые. Требования[¶](#requirements "Ссылка на этот заголовок") ------------------------------------------------------- - Компьютер Linux/Unix - PHP cli - Установленный PHPUnit - Mysql и Postgresql (опционально) Unit тесты[¶](#unit-tests "Ссылка на этот заголовок") ----------------------------------------------------- ### Тестирование с Sqlite[¶](#test-with-sqlite "Ссылка на этот заголовок") Sqlite тестирование использует базу данных в памяти, без использования записи на файловую систему. Конфигурационный файл PHPUnit - `tests/units.sqlite.xml`. Из директории Kanboard запустите команду `phpunit -c tests/units.sqlite.xml`. Пример: phpunit -c tests/units.sqlite.xml PHPUnit 5.0.0 by Sebastian Bergmann and contributors. ............................................................... 63 / 649 ( 9%) ............................................................... 126 / 649 ( 19%) ............................................................... 189 / 649 ( 29%) ............................................................... 252 / 649 ( 38%) ............................................................... 315 / 649 ( 48%) ............................................................... 378 / 649 ( 58%) ............................................................... 441 / 649 ( 67%) ............................................................... 504 / 649 ( 77%) ............................................................... 567 / 649 ( 87%) ............................................................... 630 / 649 ( 97%) ................... 649 / 649 (100%) Time: 1.22 minutes, Memory: 151.25Mb OK (649 tests, 43595 assertions) ### Тестирование с Mysql[¶](#test-with-mysql "Ссылка на этот заголовок") У вас должна быть локально установлена база данных Mysql или MariaDb. По умолчанию, используются следующие учетные данные: - Hostname: **localhost** - Username: **root** - Password: none - Database: **kanboard\_unit\_test** При каждом выполнении база данных удаляется и создается снова. Конфигурационный файл HPUnit - `tests/units.mysql.xml`. Из директории Kanboard запустите команду `phpunit -c tests/units.mysql.xml`. ### Тестирование с Postgresql[¶](#test-with-postgresql "Ссылка на этот заголовок") У вас должен быть локально установлен Postgresql. По умолчанию, используются следующие учетные данные: - Hostname: **localhost** - Username: **postgres** - Password: none - Database: **kanboard\_unit\_test** Убедитесь, что пользователь `postgres` может создавать и удалять базу данных. База данных пересоздается при каждом выполнении теста. Конфигурационных файл PHPUnit - `tests/units.postgres.xml`. Из директории Kanboard, запустите команду `phpunit -c tests/units.postgres.xml`. Тесты интеграции[¶](#integration-tests "Ссылка на этот заголовок") ------------------------------------------------------------------ Фактически тестируются только вызовы API. Реальные HTTP calls выполняются с этими тестами. Поэтому, необходим локальный экземпляр Канборда, который слушает на `http://localhost:8000/`. Все данные будут удалены/изменены при тестировании. Более того скрипт будет сброшен и установлен новый ключ API. 1. Запустите локольный экземпляр Канборда: `php -S 127.0.0.1:8000` 2. Запустите тест в другом терминале Этот же метод используется для запуска тестов для разных баз данных: - Sqlite: `phpunit -c tests/integration.sqlite.xml` - Mysql: `phpunit -c tests/integration.mysql.xml` - Postgresql: `phpunit -c tests/integration.postgres.xml` Пример: phpunit -c tests/integration.sqlite.xml PHPUnit 5.0.0 by Sebastian Bergmann and contributors. ............................................................... 63 / 135 ( 46%) ............................................................... 126 / 135 ( 93%) ......... 135 / 135 (100%) Time: 1.18 minutes, Memory: 14.75Mb OK (135 tests, 526 assertions) Непрерывная интеграция с Travis-CI[¶](#continuous-integration-with-travis-ci "Ссылка на этот заголовок") -------------------------------------------------------------------------------------------------------- После каждого commit влитого в мой репозиторий, юнит тесты выполняются для 5 различных версий PHP: - PHP 7.0 - PHP 5.6 - PHP 5.5 - PHP 5.4 - PHP 5.3 При тестировании каждой версии PHP используются 3 поддерживаемые базы данных: Sqlite, Mysql and Postgresql. Конфигурационный файл Travis - `.travis.yml` - находится в корневой директории Kanboard. [Русская документация Kanboard](http://kanboard.ru/doc/)