Настройка тестового окружения
Note: Данный раздел находится в разработке.
Yii 2 официально поддерживает интеграцию с фреймворком для тестирования Codeception
, который позволяет вам проводить следующие типы тестов:
- Модульное тестирование - проверяет что отдельный модуль кода работает верно;
- Функциональное тестирование - проверяет пользовательские сценарии через эмуляцию браузера;
- Приёмочное тестирование - проверяет пользовательские сценарии в браузере.
Все три типа тестов представлены в шаблонах проектов yii2-basic
и yii2-advanced
.
Для того, чтобы запустить тесты необходимо установить Codeception. Сделать это можно как локально, то есть только для текущего проекта, так и глобально для компьютера разработчика.
Для локальной установки используйте следующие команды:
composer require "codeception/codeception=2.1.*"
composer require "codeception/specify=*"
composer require "codeception/verify=*"
Для глобальной установки необходимо добавить директиву global
:
composer global require "codeception/codeception=2.1.*"
composer global require "codeception/specify=*"
composer global require "codeception/verify=*"
Если вы никогда не пользовались Composer для установки глобальных пакетов, запустите composer global status
. На выходе вы должны получить:
Changed current directory to <directory>
Затем <directory>/vendor/bin
добавьте в переменную окружения PATH
. После этого можно использовать codecept
глобально из командной строки.
Note: глобальная установка позволяет вам использовать Codeception для всех проектов на компьютере разработчика путём запуска команды
codecept
без указания пути. Тем не менее, данный подход может не подойти. К примеру, в двух разных проектах может потребоваться установить разные версии Codeception. Для простоты все команды в разделах про тестирование используются так, будто Codeception установлен глобально.
Настройка веб-сервера Apache
Если вы используете Apache и настроили его как описано в разделе «Установка Yii», то для тестов вам необходимо создать отдельный виртуальный хост который будет работать с той же папкой, но использовать входной скрипт index-test.php
:
<VirtualHost *:80>
DocumentRoot "path/to/basic/webb"
ServerName mysite-test
<Directory "path/to/basic/web">
Order Allow,Deny
Allow from all
AddDefaultCharset utf-8
DirectoryIndex index-test.php
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index-test.php
</Directory>
</VirtualHost>
Так мы укажем веб серверу перенаправлять все запросы на скрипт index-test.php
.
Note: Обратите внимание, что здесь мы указываем параметр
DirectoryIndex
, помимо тех параметров, которые были указаны для первого хоста. Это сделано с той целью, чтобы при обращении к главной странице по адресуmysite-test
также использовался бы скриптindex-test.php
.
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)