PHPUnit оповещение о сбое, по электронной почте или по тексту? - PullRequest
0 голосов
/ 13 апреля 2011

Мой веб-сайт имеет API, который по сути является API-интерфейсом очистки данных для ряда сайтов.Если какой-либо другой сайт изменится, мой API сломается.Мне нужно, чтобы мой API был как можно более стабильным, и если он сломался, мне нужно как можно быстрее обновить его.

Чтобы убедиться, что он работает правильно, я написал набор тестов PHPUnit, которыеубедитесь, что он работает должным образом.

Я бы хотел, чтобы эти тесты запускались периодически, возможно, один раз в день, возможно, чаще, в зависимости от того, насколько они ресурсоемки.Я мог бы настроить задание cron, которое запускает PHPUnit время от времени, и я хотел бы получать оповещения по электронной почте или по тексту, когда любой из тестов PHPUnit завершается неудачей, поэтому я могу быстро исправить API.Насколько я могу судить, нет никаких вариантов сделать это в самом PHPUnit, что является позором.Каков наилучший способ настроить это?

Ответы [ 4 ]

3 голосов
/ 13 апреля 2011

вы должны использовать что-то вроде hudson / jenkins, которое преформирует тесты при изменении кода.например, с помощью хитов pre / post commit вашего любимого приложения управления исходным кодом.

Таким образом, вы никогда не развернете сломанный код (с capistrano) на работающем сервере.-ci.org/

http://jenkins -ci.org /

https://github.com/capistrano/capistrano/wiki

Что касается электронной почты при возникновении ошибок, есть такой код вокруг.Существует плагин CakePHP, который вы можете использовать / портировать или получить идеи от

https://github.com/joebeeson/referee

2 голосов
/ 13 апреля 2011

Чтобы предоставить больше ресурсов:

Для настройки CI-сервера ( непрерывная интеграция ) (то, что запускает ваши тесты), я настоятельно рекомендую взглянуть на jenkins-php.org .

По моему личному опыту, с Дженкинсом легче работать и работать, чем с phpundercontrol.Также более стабильный и активно развивающийся.

Jenkins имеет ton плагинов, которые могут делать любые уведомления для вас, если вы не хотите «просто получить письмо», но мгновенносообщение или сообщение IRC, например.

Чертовски легко настроить ( самореклама ) гораздо меньше проблем при администрировании / обслуживании и «просто работает» практически для любого варианта использования.

1 голос
/ 22 апреля 2011

Самое простое решение - запустить тесты в задании cron и перенаправить вывод на ваш адрес электронной почты.

Проверьте статью и прокрутите раздел, посвященный отправке электронной почты на CRON JOB.

1 голос
/ 13 апреля 2011

Получите себе приятную небольшую среду непрерывной интеграции.Я пользуюсь CruiseControl .Вы также можете использовать его с phpUnderControl (который я лично не использую из-за разнообразия языков, на которых я кодирую).

Вы можете автоматизировать сборки, используя Apache Ant (или Phing , если вам действительно нужно решение PHP).Вы можете настроить электронную почту, модульное тестирование, автоматические ночные программы и т. Д.

Просто убедитесь, что вы используете формат ведения журнала JUnit в PHPUnit (--log-junit switch).

...