Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
php:codeception [2018/07/07 05:01] – [Cest] mirocowphp:codeception [2018/11/12 19:19] (текущий) – [Travis] mirocow
Строка 4: Строка 4:
  
   * https://github.com/Codeception/Codeception   * https://github.com/Codeception/Codeception
 +  * http://allframeworks.ru/codeception :!:
  
 ===== Установка ===== ===== Установка =====
Строка 13: Строка 14:
 Фреймворк для автоматического тестирования веб-приложений на PHP — Codeception живет и развивается. Но в этот раз вместо скупой порции новостей я бы хотел представить вам первый скринкаст в котором показаны азы работы с Codeception. Если вы только читали про Codeception, то вам обязательно стоит взглянуть на него в действии. Ну а если не читали, но у вас есть веб-сайт, который бы вы хотели протестировать — тоже взгляните. Фреймворк для автоматического тестирования веб-приложений на PHP — Codeception живет и развивается. Но в этот раз вместо скупой порции новостей я бы хотел представить вам первый скринкаст в котором показаны азы работы с Codeception. Если вы только читали про Codeception, то вам обязательно стоит взглянуть на него в действии. Ну а если не читали, но у вас есть веб-сайт, который бы вы хотели протестировать — тоже взгляните.
  
-===== Yii2 тестирование =====+==== Создание ====
  
-==== Advanced профиль ====+<code bash> 
 +$ ./vendor/bin/codecept bootstrap ./frontend 
 +$ ./vendor/bin/codecept bootstrap ./vendor/mirocow/yii2-notification 
 +</code>
  
-=== Функциональные тесты / functional ===+Создает папку tests с конфигурационными файлами
  
-проверяет пользовательские сценарии через эмуляцию браузера+<code bash> 
 +$ ls -la ./vendor/mirocow/yii2-notification/tests 
 +total 12 
 +drwxr-xr-x 1 vagrant vagrant 374 Jul  7 22:34 . 
 +drwxr-xr-x 1 vagrant vagrant 476 Jul  7 22:34 .. 
 +drwxr-xr-x 1 vagrant vagrant  68 Jul  7 22:34 acceptance 
 +-rw-r--r-- 1 vagrant vagrant 347 Jul  7 22:34 acceptance.suite.yml 
 +drwxr-xr-x 1 vagrant vagrant 102 Jul  7 22:34 _data 
 +drwxr-xr-x 1 vagrant vagrant  68 Jul  7 22:34 functional 
 +-rw-r--r-- 1 vagrant vagrant 360 Jul  7 22:34 functional.suite.yml 
 +drwxr-xr-x 1 vagrant vagrant 102 Jul  7 22:34 _output 
 +drwxr-xr-x 1 vagrant vagrant 238 Jul  7 22:34 _support 
 +drwxr-xr-x 1 vagrant vagrant 102 Jul  7 22:43 unit 
 +-rw-r--r-- 1 vagrant vagrant 161 Jul  7 22:34 unit.suite.yml 
 +</code>
  
-  frontend/tests/functional +В которой будут создыны 3 кипа конфигураций: **unit**, **functional**, **acceptance** 
-  * backend/tests/functional+ 
 +=== Описание === 
 + 
 +  * acceptance.suite.yml - Настройки для приемочного тестирования 
 +  * functional.suite.yml - Настройки для функционального тестирования 
 +  * unit.suite.yml - Настройки для юнит/модульного тестирования 
 +  * _support - Методы доступные через интерфейс <text>$I-></text> 
 +  * _output - В этой папке содержатся сгенерированные тестом файлы 
 +  * _data - В этойпапке содержатся загружаемые тестом файлы (Пример: <text>$I->attachFile('input[@type="file"]', 'prices.xls');</text>
 + 
 +==== Проверка и настройка тестовго окружения ==== 
 + 
 +Проверка конфигурации 
 +<code bash> 
 +$ ./vendor/bin/codecept -c ./vendor/mirocow/yii2-queue config:validate 
 +</code> 
 + 
 +<code bash> 
 +$ cd /app 
 +$ ls -la ./tests/codeception/common/ 
 +total 16 
 +drwxr-xr-x 1 vagrant vagrant 340 Jul  7 21:39 . 
 +drwxr-xr-x 1 vagrant vagrant 340 Jul  7 21:39 .. 
 +-rwxr-xr-x 1 vagrant vagrant 548 Jul  5 13:53 _bootstrap.php 
 +-rwxr-xr-x 1 vagrant vagrant 266 Jul  5 13:53 codeception.yml 
 +drwxr-xr-x 1 vagrant vagrant 102 Jul  7 21:39 _data 
 +-rwxr-xr-x 1 vagrant vagrant 141 Jul  5 13:53 .gitignore 
 +drwxr-xr-x 1 vagrant vagrant 102 Jul  5 13:53 _output 
 +drwxr-xr-x 1 vagrant vagrant 136 Jul  7 22:09 _support 
 +drwxr-xr-x 1 vagrant vagrant 136 Jul  7 22:11 unit 
 +-rwxr-xr-x 1 vagrant vagrant 152 Jul  5 13:53 unit.suite.yml 
 +</code> 
 + 
 +  * Где /app - папка проекта на vagrant виртуальной машине 
 +  * codeception.yml - Базовый конфигурационный файл 
 +  * unit.suite.yml - Настройки запускаемой конфигурации 
 + 
 +===== Запуск тестов ===== 
 + 
 +<note> 
 +Обязательно после run уазать **конфигурацию/Sute** запускаемого теста 
 +Базовые конфигурации: **unit**, **functional**, **acceptance** 
 +Конфигурация/Sute берется из корня папки с запускаемыми скриптами и носит название ***.suite.yml**. 
 +В этой же папке должен находится базовый конфигурационный файл 
 +</note> 
 + 
 +<note tip>Если указан полный путь до тесового файла, то не надо указывать suite<code bash>$ codecept run ./tests/acceptance/MyCept.php</code></note> 
 + 
 +[[https://codeception.com/docs/reference/Commands#Run|Подробнее...]] 
 +==== Параметры ==== 
 + 
 +  * ''-с'' - Папка с тестами конфигационным файлом или файл конфигурации 
 +  * ''-g'' slow - Запуск теста из укзанной группы 
 +  * ''-o'' "settings: shuffle: true" - Переопределение конфигурационных настроек 
 +  * ''-v''
 +  * ''-vv'' -  
 +  * ''-vvv'' -  
 +  * ''--steps'' -  
 +===== Наборы тестов / Suite ===== 
 + 
 +==== Юнит тесты / unit ==== 
 + 
 +проверяет что отдельный модуль кода работает верно 
 + 
 +  * frontend/tests/unit 
 +  * backend/tests/unit 
 +  * common/tests/unit
  
 Предварительная сборка тестов Предварительная сборка тестов
Строка 29: Строка 113:
 $ ./vendor/bin/codecept build $ ./vendor/bin/codecept build
 </code> </code>
 +
 +=== Создание ===
 +
 +<code bash>
 +$ ./tests/codeception/common generate:test unit UserTest -vvv
 +</code>
 +
 +=== Запуск ===
  
 Запуск всех тестов из выбранной апликации Запуск всех тестов из выбранной апликации
  
 <code bash> <code bash>
-$ ./vendor/bin/codecept -c frontend run functional -vvv +$ ./vendor/bin/codecept -c ./common run unit -vvv 
-$ ./vendor/bin/codecept -c backend run functional -vvv+$ ./vendor/bin/codecept -c ./frontend run unit -vvv 
 +$ ./vendor/bin/codecept -c ./backend run unit -vvv
 </code> </code>
 +
 +  * Где -с - папка с конфигурационным файлом codeception.yml (относительно текущей папки ./tests )
 +  * -v - Минимальный уровень логирования
 +  * -vv - Средний уровень логирования
 +  * -vvv - Маскимальный уовень логирования
  
 Запуск указанных тестов Запуск указанных тестов
Строка 41: Строка 139:
 <code bash> <code bash>
 $ cd /app $ cd /app
-$ ./vendor/bin/codecept -c backend run functional LoginCest+$ ./vendor/bin/codecept -c ./common run unit models/LoginFormTest.php
 </code> </code>
  
   * Где /app - папка с нашим проектом   * Где /app - папка с нашим проектом
-  * Где тест LoginCest.php лежит в backend/tests/functional (Так-как используется Sute из common/tests/functional.suite.yml+  * Где тест models/LoginFormTest.php лежит в common/tests/unit (Так-как используется Sute из common/tests/unit.suite.yml)
-  * Имя теста 2-я разными способами (LoginCest, LoginCest.php | LoginCept, LoginCept.php)+
  
-== Cept ==+Аналогично запускаются тесты из frontend и backend 
 + 
 + 
 +==== Функциональные тесты / functional ==== 
 + 
 +проверяет пользовательские сценарии через эмуляцию браузера 
 + 
 +  * frontend/tests/functional 
 +  * backend/tests/functional 
 + 
 +Предварительная сборка тестов 
 + 
 +<code bash> 
 +$ ./vendor/bin/codecept build 
 +</code> 
 + 
 +=== Создание === 
 + 
 +<code bash> 
 +$ ./vendor/bin/codecept -c ./frontend generate:cept functional UserFormCept 
 +$ ./vendor/bin/codecept -c ./frontend generate:cest functional UserFormCept 
 +</code>
  
-Записывается в виде сценария+<note tip>Cept - Записывается в виде сценария</note>
  
 <code php> <code php>
Строка 63: Строка 181:
 </code> </code>
  
-== Cest == +<note tip>Cest Записывается в виде PHP класса</note>
- +
-Записывается в виде PHP класса+
  
 <code php> <code php>
Строка 82: Строка 198:
 } }
 </code> </code>
-=== Юнит тесты / unit === +=== Запуск ===
- +
-проверяет что отдельный модуль кода работает верно +
- +
-  * frontend/tests/unit +
-  * backend/tests/unit +
-  * common/tests/unit +
- +
-Предварительная сборка тестов +
- +
-<code bash> +
-$ ./vendor/bin/codecept build +
-</code>+
  
 Запуск всех тестов из выбранной апликации Запуск всех тестов из выбранной апликации
  
 <code bash> <code bash>
-$ ./vendor/bin/codecept -c common run unit -vvv +$ ./vendor/bin/codecept -c ./frontend run functional -vvv 
-./vendor/bin/codecept -c frontend run unit -vvv +$ ./vendor/bin/codecept -c ./backend run functional -vvv
-$ ./vendor/bin/codecept -c backend run unit -vvv+
 </code> </code>
- 
-  * Где -с - папка с конфигурационным файлом codeception.yml 
-  * -v - Минимальный уровень логирования 
-  * -vv - Средний уровень логирования 
-  * -vvv - Маскимальный уовень логирования 
  
 Запуск указанных тестов Запуск указанных тестов
Строка 113: Строка 211:
 <code bash> <code bash>
 $ cd /app $ cd /app
-$ ./vendor/bin/codecept -c common run unit models/LoginFormTest.php+$ ./vendor/bin/codecept -c ./backend run functional LoginCest
 </code> </code>
  
   * Где /app - папка с нашим проектом   * Где /app - папка с нашим проектом
-  * Где тест models/LoginFormTest.php лежит в common/tests/unit (Так-как используется Sute из common/tests/unit.suite.yml)+  * Где тест LoginCest.php лежит в ./backend/tests/functional (Так-как используется Sute из ./common/tests/functional.suite.yml
 +  * Имя теста 2-я разными способами (LoginCest, LoginCest.php | LoginCept, LoginCept.php)
  
-Аналогично запускаются тесты из frontend и backend 
  
-=== Приёмочное тестирование / acceptance ===+==== Приёмочное тестирование / acceptance ====
  
 проверяет пользовательские сценарии в браузере проверяет пользовательские сценарии в браузере
Строка 133: Строка 231:
 </code> </code>
  
-===== Статьи =====+=== Запуск ===
  
 +<code bash>
 +
 +</code>
 +
 +===== Модули =====
 +
 +Модули codeception распологаются в папке **[[https://github.com/marcovtwout/Codeception/tree/2.3/src/Codeception/Module|./vendor/codeception/base/src/Codeception/Module]]**
 +
 +===== Компоненты =====
 +
 +<code bash>
 +$ composer require "codeception/base": "^2.2.3",
 +$ composer require "codeception/codeception=2.1.*"
 +$ composer require "codeception/specify=*"
 +$ composer require "codeception/verify=*"
 +</code>
 +
 +  * codeception/base - Codeception distribution with minimal set of dependencies
 +  * codeception/codeception - Full-stack testing PHP framework
 +  * codeception/specify - BDD style code blocks for PHPUnit / Codeception
 +  * codeception/verify - BDD Assertions for PHPUnit and Codeception
 +
 +===== Статьи / Документация =====
 +
 +  * https://github.com/yupe/codeception-guide-ru :!:
 +  * http://allframeworks.ru/codeception :!:
 +  * https://p0vidl0.info/yii2-api-guides/guide-ru-test-overview.html
 +  * https://russianpenguin.ru/%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BF%D0%BE/
 +  * http://www.jetsource.ru/scripts/stats_and_tutorials/codeception_tests
   * http://habrahabr.ru/post/136477/   * http://habrahabr.ru/post/136477/
 +  * [[http://www.jetsource.ru/scripts/stats_and_tutorials/codeception_tests|ТЕСТИРОВАНИЕ ПРОЕКТА С CODECEPTION]]
 +  * http://itfap.s2z.ru/read/Modulqnoe_testirovanie_povedeniya_Yii2_s_pomoschqyu_Codeception
  
 +===== Сервисы для тестирования =====
 +
 +==== Travis ====
 +
 +nano .travis.yml
 +<code>
 +</code>
 ===== Видео ===== ===== Видео =====
  
Строка 142: Строка 278:
   * http://code.tutsplus.com/courses/modern-testing-in-php-with-codeception   * http://code.tutsplus.com/courses/modern-testing-in-php-with-codeception
   * http://www.youtube.com/watch?v=nuzEJzuJJJ4 :!:   * http://www.youtube.com/watch?v=nuzEJzuJJJ4 :!:
 +  * https://www.youtube.com/watch?v=XGNoiPqa6PI