Kanboard-Prod/doc/ru_RU/tests.markdown

263 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Автоматизированные тесты
========================
[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/)