Круиз-контроль и PHP проекты - PullRequest
8 голосов
/ 01 декабря 2008

Я ищу полное решение для автоматизированного "сборки" и тестирования приложения PHP. Я наткнулся на PhpUnderControl, решение для запуска автоматизированных сборок приложений, созданных на основе Cruise Control.

К сожалению, PhpUC все еще находится на ранней стадии разработки, и я не могу заставить его работать на Windows Box.

После нескольких часов попыток я разочаровался в phpUc. Я сейчас пытаюсь использовать круиз-контроль в одиночку. Он работает просто отлично, когда дело доходит до запуска всего процесса сборки. Каждая команда, которую я помещаю в файл сборки ant, работает нормально.

Единственная проблема, с которой я столкнулся, заключается в том, что Cruise Control не объединяет журналы из запущенных сборок в файл журнала проекта, поэтому я не вижу результатов сборки. Но пример проекта в Круиз-контроле работает нормально, журналы для сборок объединяются в журнал проекта.

Мне интересно, может ли Cruise Control объединять журналы, созданные PHPUnit (в формате XML), в журнал проекта или он работает только для файлов JUnit Java. Кто-нибудь пробовал использовать Cruise Control один на php-проекте?

вот раздел журнала конфигурации проекта (config.xml):

<log dir="logs/${project.name}">
<merge dir="projects/${project.name}/build/logs/"/>
</log>

Это скопированные + пути, измененные из примера проекта Cruise Control.

Любые мысли, кто-нибудь, пожалуйста.

Спасибо

Ответы [ 4 ]

2 голосов
/ 01 декабря 2008

Мне интересно, круиз-контроль возможность объединять журналы, созданные PHPUnit (в формате XML) в журнал проекта или это работает для файлов JUnit Java только.

CC объединит любой xml-файл, на который вы указываете. Когда вы говорите, что объединение файлов не работает, вы получаете сообщение об ошибке их объединения или результаты теста не отображаются на странице результатов? Если вы посмотрите файл журнала сборки, то увидите ли вы результаты теста, объединенные?

Одна проблема, с которой вы можете столкнуться, заключается в том, что файлы .xsl в приложении jsp reporting ожидают, что результаты теста будут в структуре, которую создает задача ant junit. Может случиться так, что вы объединяете файлы, но .xsl не знает, как отобразить результаты.

Но я думаю, что есть простое решение. Проект PhpUnderControl предоставляет phpunit.jsp. Я думаю, что если вы добавите это в существующую установку CC, вы сможете просмотреть результаты теста. Вы можете легко добавить phpunit.jsp во вкладки; просто посмотрите на main.jsp, и это должно быть очевидно.

Если у вас есть дополнительные вопросы, я рекомендую список рассылки пользователей CruiseControl .

(Я не использовал CC в проекте PHP, но я один из коммиттеров CC.)

1 голос
/ 05 февраля 2012

phpunit, phpUnderControl и CC отлично работают!

Чтобы получить тесты на вкладке (phpUnderControl with CC) в файле phpunit xml, убедитесь, что сгенерированный файл журнала phpunit находится по правильному пути

  <log type="junit" target="...../cruisecontrol-bin-2.8.4/projects/<projname>/build/logs/logfile.xml" logIncompleteSkipped="false"/>

После того, как logfile.xml создан из тестов phpunit, он отображается на вкладке «Тесты» как phpUnderControl, так и CC.

0 голосов
/ 10 декабря 2008

Мы пытались использовать PHPUc с CC, и мы не могли заставить вещи работать правильно. Мы экспериментировали с прямым CC, но нам было трудно получить аутентификацию там (мы распространены, поэтому наши отчеты были бы открыты для всего мира, если бы мы не прикололись - мы не смогли бы это выяснить.)

Итак, теперь мы фактически используем Hudson в качестве движка CI и Phing в качестве инструмента для сборки. Работает просто отлично. У нас есть отчеты о покрытии кода, поступающие прямо из PHPUnit (который Хадсон до сих пор называет «покрытием Clover» из мира Java, но, эй, это просто имя ссылки, и мы знаем, что это значит).

Hudson прост в настройке и, похоже, работает со всем, что вам нужно для PHP.

0 голосов
/ 03 декабря 2008

Я обнаружил, что CruiseControl объединяет журналы, содержащие результаты теста, только если тест не пройден.

Когда я специально провалил тест, результаты были объединены в журнале и отображены на панели мониторинга CruiseControl.

Может ли это быть вашей проблемой?

...