Настройка тестового окружения

Примечание: Данный раздел находится в разработке.

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 глобально из командной строки.

Примечание: глобальная установка позволяет вам использовать Codeception для всех проектов на компьютере разработчика путём запуска команды codecept без указания пути. Тем не менее, данный подход может не подойти. К примеру, в двух разных проектах может потребоваться установить разные версии Codeception. Для простоты все команды в разделах про тестирование используются так, будто Codeception установлен глобально.

Настройка веб-сервера Apache

Если вы используете Apache и настроили его как описано в разделе «Установка Yii», то для тестов вам необходимо создать отдельный виртуальный хост который будет работать с той же папкой, но использовать входной скрипт index-test.php: `

DocumentRoot "path/to/basic/web"
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>

` Так мы укажем веб серверу перенаправлять все запросы на скрипт index-test.php. > Note: Обратите внимание, что здесь мы указываем параметр DirectoryIndex, помимо тех параметров, которые были указаны для первого хоста. Это сделано с той целью, чтобы при обращении к главной странице по адресу mysite-test также использовался бы скрипт index-test.php.