Хадсон CI и PHPUnit: ни один из отчетов об испытаниях не содержал никакого результата - PullRequest
1 голос
/ 09 января 2011

Я пытаюсь интегрировать свои тесты PHPUnit в Hudson с помощью плагина xUnit. После успешной сборки с Ant в hudson вывод консоли показывает:

Запись результатов теста
Ни один из отчетов об испытаниях не содержал никакого результата

Мой тестовый вывод junit.xml с использованием phpunit --log-junit выглядит следующим образом:

<testsuites>
  <testsuite name="Unit Tests" tests="1" assertions="1" failures="0" errors="0" time="0.005112">
  <testsuite name="DbTest" file="src/tests/unit/DbTest.php" tests="1" assertions="1" failures="0" errors="0" time="0.005112">
    <testcase name="testConnection" class="DbTest" file="src/tests/unit/DbTest.php" line="4" assertions="1" time="0.005112"/>
    </testsuite>
  </testsuite>
</testsuites>

Любая помощь приветствуется

EDIT: Я только что создал тест junit.xml, содержащий:

<testsuites>
  <testsuite name="DbTest" file="src/tests/unit/DbTest.php" tests="1" assertions="1" failures="0" errors="0" time="0.005112">
    <testcase name="testConnection" class="DbTest" file="src/tests/unit/DbTest.php" line="4" assertions="1" time="0.005112"/>
    </testsuite>
</testsuites>

При этом сборка прошла успешно. Кажется, проблема в вложенных тегах. Любая идея, как предотвратить PHPUnit для создания этих вложенных тегов?

1 Ответ

3 голосов
/ 10 января 2011

Я наконец-то нашел решение на Как я могу интегрировать phpunit с Hudson CI? , используя обходной путь th xslt.

Если у кого-то есть такая же проблема: создайте новый файл .xsl где-нибудь нижекорень вашего проекта:

<?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>

Затем добавьте в свой build.xml (не забудьте включить в цель сборки):

<target name="phpunit_to_xunit">
  <xslt in="build/logs/phpunit.xml" out="build/logs/junit.xml" style="phpunit_to_xunit.xsl"/>
</target>

В любом случае, это несколько громоздко.Поэтому я уже создал предложение по улучшению проекта xUnit.

...