ЗахарченкоИван
HUDSONEnterprise разработкаPHP приложений
Материалы•   Zend Framework•   PHPUnit•   Mercurial•   Hudson
HUDSON       Инструмент непрерывной интеграции       (ci).Mercurial       Распределённая система контроля       версий.PHP...
ПодготовкаУстановка PEAR•   скачать http://pear.php.net/go-pear.phar•   выполнить "php go-pear.phar" (в windows настроить ...
Структура проектаproject                               phpunit.xml - конфигурационный файл PHPUnit|-- application|-- data|...
Создание тестаIndexControllerTest.php                                            ErrorControllerTest.php<?php             ...
Настройка HUDSON•   Добавляем job•   В разделе Source Code Management указываем путь к нашему репозиторию•   Указываем рас...
dev #1   tagsdev #2dev #3                repo
Для чего все это?
•   Во время CodeReview нет необходимости просматривать стиль, оформление кода, копипаст и т.д.•   Избавляемся от ручной р...
Источники•   http://pear.php.net/•   http://www.phpunit.de/•   http://framework.zend.com/•   http://anton.shevchuk.name/ph...
СПАСИБО ЗА ВНИМАНИЕ!
Upcoming SlideShare
Loading in …5
×

Solit 2012, Enterprise разработка PHP приложений, Иван Захарченко

756 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
756
On SlideShare
0
From Embeds
0
Number of Embeds
163
Actions
Shares
0
Downloads
4
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Solit 2012, Enterprise разработка PHP приложений, Иван Захарченко

  1. 1. ЗахарченкоИван
  2. 2. HUDSONEnterprise разработкаPHP приложений
  3. 3. Материалы• Zend Framework• PHPUnit• Mercurial• Hudson
  4. 4. HUDSON Инструмент непрерывной интеграции (ci).Mercurial Распределённая система контроля версий.PHPUnit Фрэймворк, основанный на PEAR, предназначенный для модульного тестирования PHP приложений
  5. 5. ПодготовкаУстановка PEAR• скачать http://pear.php.net/go-pear.phar• выполнить "php go-pear.phar" (в windows настроить переменные среды)• проверка "pear version"Установка PHPUnit• выполнить "pear channel-discover pear.phpunit.de"• выполнить "pear install phpunit/PHPUnit"Настройка Zend_Tool• linux: прописываем alias zf для "zend/bin/zf.sh"• windows: указываем путь к директории "zend/bin/" в переменных среды• проверка "zf"Создание проекта• выполнить "zf create project zf-project"Запуск теста• выполнить "phpunit --log-junit path-to-zf-project/tests/tmp.xml path-to-zf-project/tests"
  6. 6. Структура проектаproject phpunit.xml - конфигурационный файл PHPUnit|-- application|-- data|-- docs bootstrap.php - загрузчик приложения, аналогичен index.php|-- library|-- public ControllerTestCase.php - класс-предок для всех тесткейсов`-- tests нашего проекта |-- application | |-- models | | `-- PageTest.php | |-- controllers | | |-- IndexControllerTest.php | | `-- ErrorControllerTest.php | |-- ControllerTestCase.php | `-- bootstrap.php |-- library | `-- bootstrap.php `-- phpunit.xml
  7. 7. Создание тестаIndexControllerTest.php ErrorControllerTest.php<?php <?phpclass IndexControllerTest extends ControllerTestCase{ class ErrorControllerTest extends ControllerTestCase{ public function testTestAction(){ public function testErrorURL(){ $this->dispatch(/); $this->dispatch(foo); $this->assertModule(default); $this->assertModule(default); $this->assertController(index); $this->assertController(error); $this->assertAction(index); $this->assertAction(error); } }} } PHPUnit 3.7 by Sebastian Bergmann. Time: 0 seconds OK (3 tests, 7 assertions) Generating code coverage report, this may take a moment.Смортим отчет http://%project%/tests/reports/
  8. 8. Настройка HUDSON• Добавляем job• В разделе Source Code Management указываем путь к нашему репозиторию• Указываем расписание сборокпроверок cron строкой в разделе Build Triggers• В разделе Build указываем вызов наших тестов "phpunit path-to-zf-project/tests/"• В разделе Post-build Actions ставим checkbox для Public JUnit test result report, а в Test report XMLs указываем hudson.xml• В том же разделе Post-build Actions ставим checkbox для E-mail Notification. Указываем получателей через пробел в строке recipients. И ставим checkbox на Send e-mail for every unstable buildЗ.Ы. hudson.xml генерируем из xml отчета phpunit в нужном формате, либосамописным скриптом, либо с помощью "phpunit2hudson"
  9. 9. dev #1 tagsdev #2dev #3 repo
  10. 10. Для чего все это?
  11. 11. • Во время CodeReview нет необходимости просматривать стиль, оформление кода, копипаст и т.д.• Избавляемся от ручной рутинной работы создания билдов• Оповещение по email• Наглядная статистика• Получение информации о проценте покрытия кода тестами• Использование zend tool облегчает процесс конструирования проекта• Использование mercurial проще чем git и имеет практически тот же функционал, децентрализирует репозиторий, в сравнении с subversion мержи осуществляются с меньшим количеством конфликтов и есть возможность отмены коммита
  12. 12. Источники• http://pear.php.net/• http://www.phpunit.de/• http://framework.zend.com/• http://anton.shevchuk.name/php/unit-tests-zend-framework-application/• http://habrahabr.ru/blogs/php/98832/• http://www.smartyit.ru/php/
  13. 13. СПАСИБО ЗА ВНИМАНИЕ!

×