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

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

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`.