Я обычно работаю с CruiseControl для тестирования PHP (используя поддержку CC * Phing , а не phpundercontrol). Я немного поработал с Хадсоном, но заставил Хадсона успешно записывать тесты phpunit, используя поддержку phing phpunit.
В следующих инструкциях предполагается, что вы будете использовать Phing (а не Ant) для управления сборками проекта PHP и что у вас установлены необходимые предварительные требования. Также предполагается, что у вас установлен PHPUnit 3 (хотя PHPUnit 2.x тоже должен работать).
Шаг 1: Настройка проекта для Phing / PHPUnit
Сначала вам нужно убедиться, что ваш проект тестируемый с помощью Phing. Вот пример Phing build.xml, который запускает модульные тесты и создает JUnit-совместимый вывод XML.
<?xml version="1.0" ?>
<project name="Test Project" default="test">
<property name="tests.dir" value="." />
<property name="reports.dir" value="${tests.dir}/reports" />
<target name="test" description="Run PHPUnit tests">
<phpunit haltonerror="true" haltonfailure="true" printsummary="true">
<batchtest>
<fileset dir="${tests.dir}">
<include name="**/*Test.php" />
</fileset>
</batchtest>
<formatter type="plain" usefile="false" />
<formatter type="xml" usefile="true" todir="${reports.dir}" outfile="test-results.xml" />
</phpunit>
</target>
</project>
Шаг 2: Настройка Hudson
- Установите плагин Phing для Hudson. Обратите внимание, что может необходимо установить Phing как отдельный пакет (я поместил его в /opt/phing-2.3.3) и настроить PHING_HOME в конфигурации Hudson, чтобы он указывал на этот каталог. Вы также должны быть в состоянии использовать установленный PEAR Phing; однако я не проверял это.
- Сконфигурируйте Hudson для создания своего проекта с использованием Phing.
- Настройте Hudson для сбора тестов JUnit из вашего проекта. Имя нашего файла результатов будет test-results.xml. В приведенном выше примере вы настроите его для сбора файлов из отчетов / *. Xml.
Шаг 3: Сборка!
Это должно сделать это. Попробуйте построить свой проект сейчас. Надеюсь, он соберет результаты.
См. Также Презентацию Phing или Презентацию Phing для получения дополнительной информации о Phing и (в меньшей степени) интеграции PHPUnit.
Удачи!