#5 Codeception

Ранее уже писал о том что хочу начать тестировать свой код, и вот видимо вселенная меня услышала и желание материализовалось. Правда говоря хотел начать с модульных тестов и тестового окружения, чтобы все серьезно так было, и, главное, масштабно! Но вселенная нас слышит по-своему, и иногда получаем не то что хотелось бы.

Изначально меня привлек рассказа на Drupal Cafe о модульном тестировании и всем из него вытекающем. Очень понравился рассказ одного инженера одной компании о том как все работает. В частности как работает selenium, в особенности понравился момент что можно посмотреть в браузере как происходит процесс тестирования, посмотреть скрины проблемных или наоборот удачных моментов и пр. Но для таких полных данных нужно писать нехитрые тесты, и сам код писать так чтобы можно было нормально покрыть тестами…

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

Самое забавное то что хотел начать тестировать код в вполне уютной для этого среде, хотел начать писать тесты к своим модулям под drupal, потому что там это из коры поддерживается, но в силу сложности руководства и природной лени (да, да, Ленни Кравица) у меня это не получилось. А тут на днях напоролся в новостях на пост почти месячной давности с описанием того как начать тестировать в wordpress.
И тут Остапа понесло…
На следующий день скачал и поставил себе библиотеку codeception’а и сделал первый «приемочный» тест частично по мануалу в статье (статья есть на сайте codeception.com, вот ее первая и вторая части). Первый мой тест конечно был связан с успешным логином на сайт. И вот я установил окружение, создал LoginCept.php в папке приемочных тестов, вписал пару команд которые читаются как похождения пользователя по сайте, и запустил тест. К моему удивлению тест прошел успешно и в конце мне вывели список того что сделал «веб мужик» (WebGuy).

Принцип приемочных тестов, как я понял, в том чтобы указать что должен видеть типичный пользователь, куда он может нажать (и нажимает) и на какую страницу должен попасть и что увидеть. Этим мне такие тесты и понравились. Сам тест выглядит приблизительно так:

Я новый ВебМужик. Я нахожусь на странице авторизации. Я ввожу логин, ввожу пароль, жму Логин. Я вижу Панель управления.

Вот так и выглядит тест кейс. Мило, не правда ли?)
Немного потрудившись днем в рабочее время, потом еще за ужином дома, а потом еще и утром пару часиков, у меня получилось запустить тесты для такой ситуации в вордпрессе: логинимся, заходим на страницу тем оформления, включаем нужную тему, проверяем создался ли пост с темой и указан ли он для главной. И этот тест отлично срабатывал когда было все хорошо, и был провален когда нужно. Честно, мне очень понравился такой вид тестирования. Хотя еще не полностью разобрался в том как чистить базу и все остальное после запуска тестов. Пробовал запускать плагин wordpress-reset в конце теста, но он по каким-то причинам нормально не мог выполняться. А еще краем глаза увидел что там есть из коробки поддержка очистки базы, вернее авто-заливание указанного дампа базы перед каждым тестом, но с этим пока тоже возникли проблемы. Но это не беда, еще есть время разобраться.

В итоге нашел я очень милого и легкого тестировщика кода для вордпресс, и рад этому! В дальнейших планах, после того как немного разберусь что к чему, подключить его к selenium и, может быть, как-то связать с гитом, чтобы в полночь брался последний апдейт и тестировался, тестировался и еще раз тестировался! А утром с первыми лучиками солнца рассылка результатов на мыло 😀

К слову если ты еще не выбрал как и чем тестировать свой веб апликейшн, то посмотри в сторону codeception, мне понравился, если будут сложности могу даже попробовать перевести пока аж целых две страницы руководства о том как начать тестировать.

Добавить комментарий

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