Kanboard-Prod/doc/ru_RU/tests.markdown

6.5 KiB
Raw Blame History

Автоматизированные тесты

PHPUnit используется для запуска автоматизированных тестов в Канборд.

Вы можете запускать тесты для разных баз данных (Sqlite, Mysql and Postgresql), чтобы убедится, что результаты будут одинаковые.

Требования

  • Компьютер Linux/Unix

  • PHP cli

  • Установленный PHPUnit

  • Mysql и Postgresql (опционально)

Unit тесты

Тестирование с 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

У вас должна быть локально установлена база данных 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

У вас должен быть локально установлен Postgresql.

По умолчанию, используются следующие учетные данные:

  • Hostname: localhost

  • Username: postgres

  • Password: none

  • Database: kanboard_unit_test

Убедитесь, что пользователь postgres может создавать и удалять базу данных. База данных пересоздается при каждом выполнении теста.

Конфигурационных файл PHPUnit - tests/units.postgres.xml. Из директории Kanboard, запустите команду phpunit -c tests/units.postgres.xml.

Тесты интеграции

Фактически тестируются только вызовы 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


После каждого 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