Intereting Posts
Можете ли вы пройти по ссылке при использовании тернарного оператора? Параметр $ _SERVER vs. WSGI Как установить альтернативный цвет строки для повторяющейся таблицы в php? Что делает session_register_shutdown? Динамические запросы с PHP PDO как делить строку, хранящуюся в базе данных myadmin, и искать слово из этой строки в любой последовательности? отправлять электронную почту с прикрепленными файлами в ZF2 PHP-код ошибки AJAX без использования массива PHP: переопределение родительских методов с помощью __call Дамп объекта в C ++, например var_dump () в PHP? Как добавить префикс маршрута ко всем контроллерам в Symfony2? Сделайте таймер обратного отсчета кнопки, который будет отключен навсегда после 5 минут даже при обновлении страницы, он должен оставаться отключенным Проблемы с simplexml_load_file Использование PHP для удаления выбранного элемента из раскрывающегося списка, среди прочих Добавление одного дня к дате

Как я могу интегрировать phpunit с Hudson CI?

Мы смотрим на переход от phpundercontrol к Hudson (похоже, у него есть некоторые действительно классные функции!), Но я не могу понять, как получить журналы phpunit.

У меня phpunit работает в Hudson с ant, а -log-xml помещает phpunit.xml в соответствующие сборки / папку для этой сборки. Но я не могу понять, как получить это для сборки, чтобы мы могли видеть тесты, которые выполнялись, а какие не удались, если они есть.

После того, как я это выясню, получение покрытия, метрики и api будут следующими 🙂

Похоже, что это должно быть тривиально для всего, что генерирует его на HTML, чтобы рассказать Хадсону, например: «Для этого проекта показана ссылка на« API »для каждой сборки и ссылки для сборки / $ BUILDNUM / api / index.html».

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

http://wiki.hudson-ci.org/display/HUDSON/xUnit+Plugin

С последним ответом на 2009 год и большим количеством людей, переезжающих из Хадсона в Дженкинс теперь из-за Oracle , рассмотрим возможность использования шаблона Jenkins для PHP , предлагающего бесплатный и удобный шаблон для всех ваших потребностей в конфигурации PHPQATools , таких как pdepend, phpmd, phpcs и phpunit в одном удобном шаблоне.

Существует также канал IRC # jenkins-php для поддержки Freenode .

вы также можете использовать этот xslt-файл для преобразования phpunit xml в hudson / junit xml:

<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <xsl:element name="testsuites"> <xsl:for-each select="//testsuite[@file]"> <xsl:copy-of select="." /> </xsl:for-each> </xsl:element> </xsl:template> </xsl:stylesheet> 

Я обычно работаю с CruiseControl для тестирования PHP (используя поддержку Phing CC, а не phpundercontrol). Я только немного работал с Хадсоном, но Хадсон получил успешную запись тестов phpunit с помощью поддержки phpunit phing.

В следующих инструкциях предполагается, что вы будете использовать Phing (not 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: Настройка Хадсона

  1. Установите плагин Phing для Hudson. Обратите внимание, что вам может потребоваться установить Phing как автономный pacakge (я положил его в /opt/phing-2.3.3) и настроить PHING_HOME в конфигурации Hudson, чтобы указать на этот каталог. Вы также можете использовать установленный PEAR Phing; однако, я не проверял это.
  2. Настройте Hudson для создания вашего проекта с помощью Phing.
  3. Настройте Hudson для сбора тестов JUnit из вашего проекта. Имя нашего файла результатов будет test-results.xml. В приведенном выше примере вы должны настроить его для сбора файлов из отчетов / *. Xml.

Шаг 3: Постройте!

Это должно сделать это. Попробуйте построить свой проект сейчас. Надеюсь, он соберет результаты.

Также см. Эту презентацию Phing или эту презентацию Phing для получения дополнительной информации о Phing и (в меньшей степени) интеграции PHPUnit.

Удачи!

Формат XML, испускаемый PHPUnit , не совместим (в настоящее время) с Hudson, потому что он не совсем такой же, как XML, сгенерированный другими подобными инструментами. Вот почему вы получаете сообщение «Ни один из отчетов о тестах не содержит результата».

За исключением исправления PHPUnit для создания «лучшего» XML или улучшения Хадсона, чтобы быть более гибким в том, что он принимает, единственным решением является исправление XML, устраняя вложенность элементов <testuite>. Я использовал sed для изменения PHPUnit XML, чтобы он был приемлемым для Hudson:

 # Tweak the test result XML to make it acceptable to Hudson. lines=`wc -l test-results/results.xml|awk '{print $1}'` end=`expr $lines - 1` sed -i "$end d;3d" test-results/results.xml 

Преобразование XSLT из предыдущего сообщения не работает для меня. После применения этого преобразования структура DOM отчета не изменяется. Я изменил его, чтобы исправить эту проблему. Мой вариант:

 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <xsl:element name="testsuites"> <xsl:for-each select="//testsuite[@file]/testsuite"> <xsl:copy-of select="." /> </xsl:for-each> </xsl:element> </xsl:template> </xsl:stylesheet> 

меня устраивает.

Если вы хотите получить полное руководство по интеграции PHP с Hudson, вы можете проверить эту ссылку:

Непрерывная интеграция для PHP с Хадсоном

Ответ выше действителен, но проще, без изменения процесса сборки:

  • Настройте свой проект
  • В открывшемся окне отчета JUnit (см. http://img.ruphp.com/php/search ) заполните поле «phpunit.xml в соответствующих сборках / папках»,
  • мы надеемся, что следующая сборка будет содержать тенденцию и более подробную информацию о ваших тестах, например http://img.ruphp.com/php/5.png

Я считаю, что xslt, возможно, придется варьировать в зависимости от используемой версии phpunit. Например, таблица стилей, опубликованная хоши, хорошо работала для меня, используя версию phpunit 3.3.17

Но вполне возможно, что phpunit был обновлен, чтобы испускать другой формат в более новых версиях, или sir-vestnik мог запускать более старую версию.