Написать инструкцию надоумил тот факт, что нигде не было подробной инструкции как это все делается.
Готовой инструкции не нашел, так как phpunit не ставится вместе с phpunit_selenium, а только можно использовать установочный файл phpunit.phar и то только для использования phpunit, для установки phpunit_selenium необходимо использовать composer.
Итак побродив по ресурсам и вскипятив мозг нашел и собрал гайд, основываясь на двух замечательных постах вот этих людей
http://blog.mediasuite.co.nz/tip-how-to ... -composer/
viewtopic.php?f=10&t=19706
Итак инструкция для использования тестов в phpstorm
Что нам нужно для начала:
1. Создаем каркас.
2. Скачиваем Selenium
http://selenium-release.storage.googlea ... 2.43.1.jar
3. Создаем файл composer.json в корне со следующим содержанием
Код: Выделить всё
{
"require-dev": {
"phpunit/phpunit": "3.7.*",
"phpunit/phpunit-selenium": ">=1.2",
"phpunit/dbunit": ">=1.2",
"phpunit/phpunit-story": "*"
},
"autoload": {
"psr-0": {"": "src"}
},
"config": {
"bin-dir": "bin/"
}
}
4. После этого устанавливаем сам composer:
curl -sS https://getcomposer.org/installer | php
Далее с помощью composer'а установить пакеты с зависимостями:
./composer.phar install --dev
Чтобы проверить все ли прошло ОК выполнить проверку версии:
./bin/phpunit --version
В дальнейшем, если нужно добавить какие-то пакеты просто добавляете их в composer.json и делаете update.
5. Нужно отредактировать файлы bootstrap.php и phpunit.xml, которые находятся в protected/tests
bootstrap.php
Код: Выделить всё
<?php
// change the following paths if necessary
//Здесь указываете пути к вашей папке с framework'oм
$yiit=dirname(__FILE__).'/../../../yii/framework/yiit.php';
$config=dirname(__FILE__).'/../config/test.php';
//Класс, который будет использован вместо CTestCase
require_once('TestCase.php');
//Класс, который будет использован вместо CDbTestCase
require_once('DbTestCase.php');
require_once($yiit);
Yii::createWebApplication($config);
Код: Выделить всё
<phpunit bootstrap="bootstrap.php"
colors="false"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
stopOnFailure="false">
<selenium>
<browser name="Chrome" browser="*googlechrome" />
<browser name="Firefox" browser="*firefox" />
</selenium>
</phpunit>
5. Настраиваем интерпритатор php File->Settings->PHP
На текущий момент, к сожалению, невозможно воспользоваться классами, который предлагает Yii для unit-тестов, а именно CTestCase и CDbTestCase (последний является потомком CTestCase), если мы используем phar-архив PHPUnit, об этом разработчикам Yii известно. В следующих релизах это будет исправлено, ну а пока, можно прибегнуть к костылям. Я скептически отношусь к советам что-то править и комментировать в файле CTestCase.php. Поскольку этот файл является частью Фреймворка любые поправки и изменения в его код могут вносить только контрибьюторы yii.
Для того, чтобы избежать ошибок, которые вызывают выражения require_once в классе CTestCase, создадим в корне директории tests свой абстрактный класс TestCase, со следующим содержимым:
Код: Выделить всё
<?php
abstract class TestCase extends PHPUnit_Framework_TestCase
{
}
Теперь осталось лишь создать конфигурацию тестирования в PHPStorm (create run configuration from context).
Для того, чтобы создать конфигурацию тестирования выберите директорию tests и вызовите контекстное меню (клик правой кнопкой мыши на папке), затем выберите пункт "Create tests". В открывшемся окне для Test Scope выберите "Directory", а в поле Directory укажите путь к папке "tests/unit".
Не забудьте добавить в поле Test Runner Options следующие параметры запуска:
--bootstrap \ВАШ ПУТЬ\tests\bootstrap.php --configuration \ВАШ ПУТЬ\tests\phpunit.xml
Сохраните конфигурацию.
Теперь можно и к тестированию приступить. Не забудьте, что для тестирования Active Record класс теста должен расширять класс DbTestCase.php (который мы используем вместо CDbTestCase), тоже самое в случае тестирования обыкновенной модели - класс теста расширяет класс TestCase, а не CtestCase.
Запускаем selenium. Перейти в папку с сервером и запустить командой:
java -jar selenium-server.jar
Для тестирования перейти в
protected/tests
и выполнить
../../bin/phpunit unit - для юнит тестирования
или
../../bin/phpunit functional — для функционального тестирования
чтобы запустить тесты
P.S. Извиняюсь за копипасту местами