Почему мой модульный тест не проходит через Hudson / Phing, но проходит через Phing в командной строке? - PullRequest
4 голосов
/ 28 сентября 2010

Общая информация:

PHP 5.3.3
PHPUnit 3.4
Zend Framework 1.10.8

Цель построения Phing

 <target name="test">
  <echo msg="PHPUnit..." />
  <phpunit codecoverage="false" haltonfailure="true" haltonerror="true" printsummary="true" bootstrap="${testdir}/application/bootstrap.php">
   <batchtest>
    <fileset dir="${testdir}">
     <include name="**/*Test.php" />
     <exclude name="./application/ControllerTestCase.php" />
     <exclude name="./application/bootstrap.php" />
    </fileset>
   </batchtest>
   <formatter type="xml" todir="${builddir}" outfile="phpunit-results.xml" />
  </phpunit>
  <phpunitreport infile="${builddir}/phpunit-results.xml" 
     styledir="${phpunit.styles.dir}"
     format="frames" 
     todir="${builddir}" />
 </target>

Это работает ...

phing -f build.xml test

Hudson / Phing

Моя цель Phing, указанная в Hudson, которая использует тот же файл build.xml, не работает. Я получаю один и тот же тип ошибки (strpos (): Пустой разделитель) для каждого модульного теста, который возникает при выполнении $ this-> dispatch (.. url ..).

Происходит в выводе консоли при выполнении цели модульного теста в Гудзоне

'strpos(): Empty delimiter' in /opt/phing/classes/phing/tasks/ext/phpunit/PHPUnitTask.php:279

В XML-файле результатов PHPUnit

strpos(): Empty delimiter

/opt/zend/library/Zend/Controller/Request/Http.php:504
/opt/zend/library/Zend/Controller/Request/Http.php:551
/opt/zend/library/Zend/Controller/Request/Http.php:615
/opt/zend/library/Zend/Test/PHPUnit/ControllerTestCase.php:187
/var/lib/hudson/.hudson/jobs/IPS/workspace/trunk/tests/application/IndexControllerTest.php:6
/opt/phing/bin/phing.php:37

Кто-нибудь может пролить свет на это?

1 Ответ

2 голосов
/ 07 октября 2010

Технически говоря, я решил эту проблему, но решил не запускать PHPUnit через цель Hudson Phing. Вместо этого я решил запустить команду оболочки в Хадсоне, которая на данный момент отлично работает для наших нужд. Если у кого-то есть другие идеи, я весь в ушах. Спасибо!

...