Показать страницуИстория страницыСсылки сюдаCopy this pageExport to MarkdownODT преобразованиеНаверх Вы загрузили старую версию документа! Сохранив её, вы создадите новую текущую версию с этим содержимым. Медиафайлы{{tag>php test codeception}} ====== Codeception - Тестирование ====== * https://github.com/Codeception/Codeception ===== Установка ===== * http://codeception.com/pear/ ===== Описание ===== Фреймворк для автоматического тестирования веб-приложений на PHP — Codeception живет и развивается. Но в этот раз вместо скупой порции новостей я бы хотел представить вам первый скринкаст в котором показаны азы работы с Codeception. Если вы только читали про Codeception, то вам обязательно стоит взглянуть на него в действии. Ну а если не читали, но у вас есть веб-сайт, который бы вы хотели протестировать — тоже взгляните. ===== Yii2 тестирование ===== ==== Advanced профиль ==== === Функциональные тесты / functional === проверяет пользовательские сценарии через эмуляцию браузера * frontend/tests/functional * backend/tests/functional Предварительная сборка тестов <code bash> $ ./vendor/bin/codecept build </code> Запуск всех тестов из выбранной апликации <code bash> $ ./vendor/bin/codecept -c frontend run functional -vvv $ ./vendor/bin/codecept -c backend run functional -vvv </code> Запуск указанных тестов <code bash> $ cd /app $ ./vendor/bin/codecept -c backend run functional LoginCest </code> * Где /app - папка с нашим проектом * Где тест LoginCest.php лежит в backend/tests/functional (Так-как используется Sute из common/tests/functional.suite.yml) * Имя теста 2-я разными способами (LoginCest, LoginCest.php | LoginCept, LoginCept.php) == Cept == <code php> <?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'); </code> == Cest == <code 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'); } } </code> === Юнит тесты / unit === проверяет что отдельный модуль кода работает верно * frontend/tests/unit * backend/tests/unit * common/tests/unit Предварительная сборка тестов <code bash> $ ./vendor/bin/codecept build </code> Запуск всех тестов из выбранной апликации <code bash> $ ./vendor/bin/codecept -c common run unit -vvv $ ./vendor/bin/codecept -c frontend run unit -vvv $ ./vendor/bin/codecept -c backend run unit -vvv </code> * Где -с - папка с конфигурационным файлом codeception.yml * -v - Минимальный уровень логирования * -vv - Средний уровень логирования * -vvv - Маскимальный уовень логирования Запуск указанных тестов <code bash> $ cd /app $ ./vendor/bin/codecept -c common run unit models/LoginFormTest.php </code> * Где /app - папка с нашим проектом * Где тест models/LoginFormTest.php лежит в common/tests/unit (Так-как используется Sute из common/tests/unit.suite.yml) Аналогично запускаются тесты из frontend и backend === Приёмочное тестирование / acceptance === проверяет пользовательские сценарии в браузере * frontend/tests/acceptance Предварительная сборка тестов <code bash> $ ./vendor/bin/codecept build </code> ===== Статьи ===== * 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 :!: СохранитьПросмотрРазличияОтменить Сводка изменений Примечание: редактируя эту страницу, вы соглашаетесь на использование своего вклада на условиях следующей лицензии: CC0 1.0 Universal