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

Пусть автоматически сгенерированный Первичный ключ будет: 45454545.Теперь все, что вам нужно сделать, это отформатировать его в Java.

Для форматирования вы можете использовать .format() или .substring() или StringBuilder().

        String PK = "45454545";


        String output =  String.format("%1$s-%2$s", PK.substring(0,4), 
        PK.substring(4));

Или

String output =PK.substring(0,4) + "-" + PK.substring(4);

Или

String output = new StringBuilder(PK).insert(4, '-').toString();
15
задан mrooney 5 February 2009 в 21:41
поделиться

8 ответов

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

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

24
ответ дан 1 December 2019 в 00:33
поделиться

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

Следующие инструкции предполагают использование Phing (не Муравей) для управления сборками проекта PHP и что Вам установили необходимый prereqs. Это также предполагает, что у Вас есть установленный 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 для Гудзона. Обратите внимание, что Вы, возможно, должны установить Phing как автономный pacakge (я вставил его/opt/phing-2.3.3), и настройте PHING_HOME в Гудзонской конфигурации для указания на тот каталог. Необходимо также смочь использовать УСТАНОВЛЕННЫЙ НА ГРУШЕ Phing; однако, я не протестировал это.
  2. Настройте Гудзон для создания использования проекта Phing.
  3. Настройте Гудзон для сбора тестов JUnit из проекта. Названием нашего файла результатов будет test-results.xml. В примере выше Вы настроили бы его для сбора файлов из reports/*.xml.

Шаг 3: сборка!

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

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

Удачи!

4
ответ дан 1 December 2019 в 00:33
поделиться

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

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

# 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
2
ответ дан 1 December 2019 в 00:33
поделиться

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

  • Настройте свой проект
  • Проверьте общественность поля отчет JUnit (см. http://thinkvitamin.com/images/articles/hudson/hudson_setup.png), и заполните местоположение "phpunit.xml в соответствующих сборках / папка"
  • надо надеяться, на следующей сборке будет содержать тенденцию и более подробную информацию о Ваших тестах, как здесь https://hudson.dev.java.net/screenshots/5.png
0
ответ дан 1 December 2019 в 00:33
поделиться

Преобразование 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>

у меня работает.

2
ответ дан 1 December 2019 в 00:33
поделиться

вы также можете использовать этот файл 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>
5
ответ дан 1 December 2019 в 00:33
поделиться

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

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

0
ответ дан 1 December 2019 в 00:33
поделиться

If you would like a complete tutorial on integrating PHP with Hudson you can check out this link:

Continuous Integration for PHP with Hudson

2
ответ дан 1 December 2019 в 00:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: