Codeception - Тестирование

https://github.com/Codeception/Codeception

Установка

http://codeception.com/pear/

Компоненты

composer require "codeception/codeception=2.1.*"
composer require "codeception/specify=*"
composer require "codeception/verify=*"

Описание

Фреймворк для автоматического тестирования веб-приложений на PHP — Codeception живет и развивается. Но в этот раз вместо скупой порции новостей я бы хотел представить вам первый скринкаст в котором показаны азы работы с Codeception. Если вы только читали про Codeception, то вам обязательно стоит взглянуть на него в действии. Ну а если не читали, но у вас есть веб-сайт, который бы вы хотели протестировать — тоже взгляните.

Yii2 тестирование

Advanced профиль

Функциональные тесты / functional

проверяет пользовательские сценарии через эмуляцию браузера

frontend/tests/functional

backend/tests/functional

Предварительная сборка тестов

$ ./vendor/bin/codecept build

Запуск всех тестов из выбранной апликации

$ ./vendor/bin/codecept -c frontend run functional -vvv $ ./vendor/bin/codecept -c backend run functional -vvv

Запуск указанных тестов

$ cd /app $ ./vendor/bin/codecept -c backend run functional LoginCest

Где /app - папка с нашим проектом

Где тест LoginCest.php лежит в backend/tests/functional (Так-как используется Sute из common/tests/functional.suite.yml)

Имя теста 2-я разными способами (LoginCest, LoginCest.php | LoginCept, LoginCept.php)

Cept

Записывается в виде сценария

<?php $I = new AcceptanceTester($scenario); $I->wantTo('log in as regular user'); $I->amOnPage('/login'); $I->fillField('Username','john'); $I->fillField('Password','secret'); $I->click('Login'); $I->see('Hello john');

Cest

Записывается в виде PHP класса

<?php class UserCest { public function loginAsRegularUser(\AcceptanceTester $I) { $I->wantTo('log in as regular user'); $I->amOnPage('/login'); $I->fillField('Username','john'); $I->fillField('Password','secret'); $I->click('Login'); $I->see('Hello john'); } }

Юнит тесты / unit

проверяет что отдельный модуль кода работает верно

frontend/tests/unit

backend/tests/unit

common/tests/unit

Предварительная сборка тестов

$ ./vendor/bin/codecept build

Запуск всех тестов из выбранной апликации

$ ./vendor/bin/codecept -c common run unit -vvv $ ./vendor/bin/codecept -c frontend run unit -vvv $ ./vendor/bin/codecept -c backend run unit -vvv

Где -с - папка с конфигурационным файлом codeception.yml

-v - Минимальный уровень логирования

-vv - Средний уровень логирования

-vvv - Маскимальный уовень логирования

Запуск указанных тестов

$ cd /app $ ./vendor/bin/codecept -c common run unit models/LoginFormTest.php

Где /app - папка с нашим проектом

Где тест models/LoginFormTest.php лежит в common/tests/unit (Так-как используется Sute из common/tests/unit.suite.yml)

Аналогично запускаются тесты из frontend и backend

Приёмочное тестирование / acceptance

проверяет пользовательские сценарии в браузере

frontend/tests/acceptance

Предварительная сборка тестов

$ ./vendor/bin/codecept build

Статьи

http://habrahabr.ru/post/136477/

Видео

http://habrahabr.ru/post/146662/

http://code.tutsplus.com/courses/modern-testing-in-php-with-codeception

http://www.youtube.com/watch?v=nuzEJzuJJJ4