Настройка тестового окружения
Для тестирования Юпи! мы используем популярный фреймворк для тестирования - Codeception.
Для ознакомления с Codeception мы перевели ешл официальную документацию http://allframeworks.ru/codeception/.
Мы не вносим какие-либо изменения в сам фреймворк, однако добавляем некоторые собственные Помощники (Helpers), а так же придерживаемся определенных соглашений и правил.
Тесты codeception располагаются в каталоге ./tests/
относительно корня yupe.
Так как существует необходимость в настройке тестового окружения для каждого разработчика,
в репозитории мы храним только конфигурационные файлы *.dist.yml
.
Стоит отметить, что данные файлы не подойдут для тестирования, т.к. не смотря на то, что они содержат в себе основную конфигурацию, в них не указаны такие настройки, как параметры подключения к базе данных.
Прежде чем начать тестирование, вам необходимо создать конфигурационный файл тестовой базы данных (protected/config/db-test.php
),
а так же файлы конфигурации Codeception:
-
codeception.yml
-
tests/acceptance.suite.yml
-
tests/functional.suite.yml
-
tests/unit.suite.yml
Нет необходимости создавать данные файлы вручную. В этом вам поможет команда подготовки тестового окружения
Подготовка тестового окружения
Для начала отметим, что в соответсвтии с соглашением Юпиы! должен быть установлен на отдельный виртуальных хост и доступен по адресу http://yupe.local. Конечно, в дельнейшем вы сможете настроить данный адрес так как вам угодно, однако по умолчанию файлы конфигурации будут созданны именно с таким адресом.
Стоит сказать пару слов о настройках базы данных. По умолчанию для тестирования мы используем
базу данных MySQL
с названием yupe_test
с логином root
, без пароля. Если вы захотите сменить тип базы
данных, вы сможете сделать позже, изменив настроки в личных файлах конфигурации.
####Для создания личных файлов конфигурации выполните команду:
./yiic testenv create
Данная команда в интерактивном режиме спросит вас о настройках базы данных и создаст необходимые файлы конфигурации в соответствующих каталогах:
-
codeception.yml
- личный файл конфигурации Codeception, будет объеденен сcodeception.dist.yml
-
tests/acceptance.suite.yml
- личный файл конфигурации для Acceptance тестов, будет объеденен сacceptance.suite.dist.yml
-
tests/functional.suite.yml
- личный файл конфигурации для Functional тестов, будет объеденен сfunctional.suite.dist.yml
-
tests/unit.suite.yml
- личный файл конфигурации для Unit тестов, будет объеденен сunit.suite.dist.yml
-
protected/config/db-test.php
- файл конфигурации тестовой базы данных для Yupe (Используется в index-test.php при Acceptance и Functional тестирвоании, а так же используется при тестировании консольных комманд Yupe и Yii).
Данные файлы игнорируются GIT и не попадут в репозиторий, поэтому вы смело сможете вносить в них необходимые изменения. Если вы совершили ошибку, нет необходимости в удалении данных файлов вручную.
####Для удаления личных файлов конфигурации выполните команду**:
./yiic testenv reset
Данная команда удалит все личные файлы конфигурации.
Тестовое окружение Юпи!
####Файлы Юпи использующиеся при тестировании:
-
protected/config/console-test.php
- Используется при создании приложения для unit тестирования консольных команд -
protected/config/test.php
- Используется при создании приложения для functional и acceptance тестирования Юпи! -
public/index-test.php
- Точка входа для приложения при Acceptance и Functional тестировании
####Структура каталогов и файлов Codeception:
-
codeception.dist.yml
- Главный конфигурационный файл Codeception (Хранится в репозитории) -
codeception.yml
- Личный главный конфигурационный файл Codeception (создается разработчиком) -
tests/
- Каталог тестов Codeception -
tests/acceptance/
- Каталог Acceptance (Приемочных) тестов Yupe -
tests/functional/
- Каталог Functional (Функциональных) тестов Yupe -
tests/unit/
- Каталог Unit (Модульных) тестов Yupe -
tests/acceptance.suite.dist.yml
- файл конфигурации для Acceptance тестов (Хранится в репозитории) -
tests/acceptance.suite.yml
- личный файл конфигурации для Acceptance тестов (создается разработчиком) -
tests/functional.suite.dist.yml
- файл конфигурации для Functional тестов (Хранится в репозитории) -
tests/functional.suite.yml
- личный файл конфигурации для Functional тестов (создается разработчиком) -
tests/unit.suite.dist.yml
- файл конфигурации для Unit тестов (Хранится в репозитории) -
tests/unit.suite.yml
- личный файл конфигурации для Unit тестов (создается разработчиком)
В целом структура каталога tests/
не отличается от стандартной структуры каталога которую создает
Codeception. То же самое касается и конфигурационных файлов.
Единственное о чем следует помнить: В файлах *.dist.yml
мы используем некоторые сервисные переменные, которые в последствии, при создании личных файлов конфигураци,
заменяются на указаные разработчиком, поэтому данные файлы не будут работать при отсутствии личных файлов конфигурации, сгенерированных командой ./yiic testenv create
.
Основной особенностью применения Codeception являеся тот факт, что с его помощью можно легко тестировать сайты и веб-приложения, написанные на любой CMS и/или фреймвокре или же вообще без оных. Acceptance- и даже Functional-тесты можно использовать практически на любом проекте. Если у вас есть проект, качество которого, необходимо поддерживать на должном уровне - напишите нам.
No Comments