PHPStorm+PHPUnit в Yii2 — удобный вывод тестов

В PhpStorm в саму IDE встроена панель тестирования phpunit тестов. Но зная что в Yii2 сразу из коробки идет Codeception, который включает в себя также и сам phpunit и плюс дополнительный более удобный метод написания тестов, вывод самих unit тестов не совсем удобный. Для запуска codeception тестов нужно создать консольный скрипт и вывод результатов теста будет также через консоль. Хотелось бы иметь возможность прямо из PhpStorm запускать юнит тесты как по одному классу так и только один метод одного класса.

Для решения проблемы запуска unit тестов можно просто переопределить bootstrap файл и просто использовать PHPUnit тест с указанием данного bootstrap файла. Переписывать сами тесты не нужно.

Создадим новый _phpunitbootstrap.php в папки tests/codeception:

<?php
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'test');
defined('YII_TEST_ENTRY_URL') or define('YII_TEST_ENTRY_URL', '/index-test.php');
defined('YII_TEST_ENTRY_FILE') or define('YII_TEST_ENTRY_FILE', dirname(dirname(__DIR__)) . '/web/index-test.php');
require(__DIR__ . '/../../vendor/autoload.php');
require(__DIR__ . '/../../vendor/yiisoft/yii2/Yii.php');
$config = require(__DIR__ . '/../../config/console.php');
Yii::setAlias('@app', dirname(__DIR__));

Важно правильно прописать пути к autoload и к самому Yii.

Теперь в настройках PhpStorm укажем нужный bootstrap файл (Settings — Languages and Frameworks — PHPUnit):

Снимок экрана 2016-02-15 в 14.05.01

Создаем новый PHPUnit тест через меню Run/Debug configurations, указываем папку с тестами.

Запускаем и видим удобную панель тестов:

Снимок экрана 2016-02-15 в 14.07.43

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *