Сегодня подключили к CI серверу первый плагин покрытый автоматическими тестами!

Наличие автоматических тестов это важная составляющая качественного программного продукта. А мы ведь хотим использовать качественные плагины на своих LiveStreet сайтах?

Именно поэтому stfalcon.com занимается внедрением автоматических тестов в LiveStreet и плагины, а также подключением всего этого дела к бесплатной платформе для Continuous integration Travis CI.

И вот сегодня состоялось важное событие — загорелся первый зеленый билд статус для плагина sitemap!



Немного перефразируя Армстронга это:
Один маленький шажок для человека, но огромный скачок для LiveStreet сообщества



PS. Для самого LiveStreet такой статус загорелся ещё две недели назад, но тестами покрыта пока лишь малая часть функционала.

15 комментариев

avatar
Рад слышать. Надо будет и мне наверное последовать этому примеру. Можете более детально описать как что и где настраивать в Travis CI.? Ну или может отдельным топиком. я думаю многим было бы интересно почитать
avatar
Да, конечно. Отладим процесс ещё на нескольких плагинах и сделаем мануал.
avatar
Поздравляю с таким знаменательным событием! Молодцы!
avatar
Молодцы!
avatar
Лучше бы больше рассказали о самых тестах, ибо вроде как топик ни о чем, имхо.
avatar
Для функционального тестирования используется Behat. Механизм фикстур самописный. Вот пример сущетсвующих тестовых сценариев для LiveStreet github.com/livestreet/livestreet/blob/master/tests/behat/features/base.feature

Информация о запуске тестов есть в ридми github.com/livestreet/livestreet/tree/master/tests

Этот топик мое выражение радости от первых итогов долго работы. Не омрачайте её своим ИМХО :)
avatar
Вроде все скопировал и под себя изменил. А все равно ошибка еще до старта основных тестов.

$ HTTP_APP_ENV=test cd tests/behat/ && php behat.phar --config='../../plugins/pluginname/tests/behat/behat.yml'
813: PHP Warning:  Invalid argument supplied for foreach() in phar:///home/travis/builds/username/projectname/tests/behat/behat.phar/src/Behat/Behat/DependencyInjection/BehatExtension.php on line 62
814: PHP Stack trace:
...               
858:[Symfony\Component\Config\Definition\Exception\InvalidTypeException]  
859:Invalid type for path "behat". Expected array, but got string                                                            


Доктор, что я делаю нет так?
avatar
Зависит от того что вы скопировали и что под себя изменили. Давайте в личку.
avatar
Разобрался. Проблема с симлинком ../../plugins/pluginname/tests/behat/behat.yml при разработке в Windows. Вместо симлинка, обычный текстовый файл с относительной ссылкой внутри.

Ошибка будет у всех windows-пользователей, пока не найдут возможность закомитить симлинк.
avatar
stfalcon, привет.

Спасибо за новую фишку. Но, я как обычный пользователь, понял лиш то: что вы сделали какой-то прорыв, сравнимый с полетом на луну. Но саму суть не понял вообще. Что я теперь могу сделать с плагином?)
avatar
автоматические тесты помогают снизить уровень возможных ошибок в плагине. Если плагины буду проходить такие тесты до попадения в каталог, то будет меньше неработающих плагинов — и всем станет хорошо :)
avatar
Вот теперь понятно. Спасибо.
avatar
Они позволяют избежать ситуаций когда меняя/добавляя функциона мы ломаем то, что уже работало и не замечаем этого. Особенно актуально для больших плагинов и сложных сценариев/условий (которые могут просто забываться со временем).
Также это экономит время на постоянное тестирование функционала плагина. Например после апдейтов до новой версии LiveStreet.
avatar
Ура, товарищи! Теперь остаётся дождаться, когда остальные авторы плагинов поддержат эту инициативу и тогда проблем будет меньше у нас.
avatar
Видел на Гитхабе, что добавили тесты — это верный путь. Спасибо за проделанный труд, надеюсь теперь LiveStreet станет еще лучше!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.