Последнее время я часто сталкивался с разработкой на Ruby и Ruby on Rails. О них говорить я не собираюсь. Но после возвращения к PHP кое-чего стало очень не хватать. Одна простая утилита, оказавшаяся отличным помощником для любого разработчика, который использует тесты. autotest запускает тесты на любое изменение в кодовой базе или тестах. Я попробовал поискать в Гугле и на Гитхабе аналог для PHP. Все решения, которые я нашел, были написаны либо на Ruby, либо на серверном JavaScript, либо на bash (хотя позже все же нашел решения и на PHP, которые, тем не менее, мне не понравились по разным причинам). Я являюсь сторонником мнения, что утилиты для разработки на каком-то языке должны быть написаны на нем же. Причин тому много, одна из наиболее значимых лично для меня — это возможность легко и непринужденно вносить какие-то правки и изменения в код самой утилиты (например, когда разработчик утилиты не реагирует на баг-репорт). Руки у меня зачесались, и я попробовал написать свою версию autotest для PHP. Результат можно посмотреть на Гитхабе.
Код, конечно, далек от идеала. Тут есть, что еще делать — например, содержимое консольного скрипта следует перенести в отдельный класс, нужно отрефакторить существующие классы (некоторые не следуют SRP), возможно, добавить некоторую функциональность.
Но все же я решил вынести мое решение на суд общественности. С одной стороны, я был бы рад советам (например, как написать юнит-тесты для скрипта с бесконечным циклом). С другой, утилита уже может оказаться полезной некоторым разработчикам.
Код, конечно, далек от идеала. Тут есть, что еще делать — например, содержимое консольного скрипта следует перенести в отдельный класс, нужно отрефакторить существующие классы (некоторые не следуют SRP), возможно, добавить некоторую функциональность.
Но все же я решил вынести мое решение на суд общественности. С одной стороны, я был бы рад советам (например, как написать юнит-тесты для скрипта с бесконечным циклом). С другой, утилита уже может оказаться полезной некоторым разработчикам.
ссылка на оригинал статьи http://habrahabr.ru/post/215955/
Добавить комментарий