phpUnderControl и PHPUnit всегда терпят неудачу при сборке с кодом 255 - PullRequest
3 голосов
/ 23 июля 2010

У меня есть следующая build.xml настройка файла в phpUnderControl.

    <target name="phpunit">
    <exec executable="phpunit" dir="${basedir}/httpdocs" failonerror="on">
        <arg line="--log-junit ${basedir}/build/logs/phpunit.xml
                --coverage-clover ${basedir}/build/logs/phpunit.coverage.xml
                --coverage-html ${basedir}/build/coverage
                --colors
                ${basedir}/httpdocs/qc/unit/CalculatorTest.php" />
    </exec>
</target>

По какой-то неизвестной причине сборка всегда завершается неудачно с сообщением ниже.

phpunit:
 [exec] PHPUnit 3.4.15 by Sebastian Bergmann.
 [exec] 

BUILD FAILED
/opt/cruisecontrol-bin-2.8.3/projects/citest.local/build.xml:30: exec returned: 255

Я запустилочень простой модульный тест вручную в каталоге модулей и PHPUnit возвращает.

PHPUnit 3.4.15 by Sebastian Bergmann.

.

Time: 0 seconds, Memory: 5.25Mb

OK (1 test, 1 assertion)

Кто-нибудь знает, почему он продолжает сбой при сборке, когда все тесты в порядке?

Мой скрипт сборки имеетчистый метод, который удаляет и регистрирует файлы, так что это не так.Я также вручную удалил файлы журналов, на случай, если это тот сценарий.И изменил владельца каталогов журналов, чтобы они были доступны для записи.

Если есть какая-либо разница, phpunit.xml будет пустым после запуска PHPUnit.

Спасибо.

ОБНОВЛЕНИЕ: Между прочим, если я удаляю failonerror="on", это работает, очевидно, но PHPUnit по-прежнему возвращает 255, и я хочу, чтобы он не работал при любых ошибках, проблема в том, что ошибок нет, но все равно происходит сбой!

Ответы [ 5 ]

6 голосов
/ 23 июля 2010

255 - это код ошибки, который PHP генерирует при фатальных и (я думаю) ошибках синтаксического анализа.

Может ли быть фатальная ошибка или ошибка синтаксического анализа при выполнении скрипта, возможно, после запуска тестов?

Есть ли ошибки PHP?Что произойдет, если вы добавите error_reporting(E_ALL);?

1 голос
/ 25 ноября 2010

Возможно, возвращаемое exec: 255 вызвано потреблением памяти в отчете CodeCoverage, который будет отображаться после включения error_reporting (E_ALL), как упоминалось в Pekka. Попробуйте init_set('display_errors','on'); также. Обычно вы сталкиваетесь с «объемом памяти ... исчерпанным» фатальным.

0 голосов
/ 16 февраля 2014

У меня есть Selenium, PHPUnit, PHPUnderControl и CruiseControl, все работают вместе (здесь http://www.siteconsortium.com/h/p1.php?id=php002)

Просто очень простой пример, но я смог заставить его работать так. Начните с чего-топросто и скопируйте другие вещи обратно.

<?xml version="1.0" encoding="UTF-8"?>
<project name="test" default="build" basedir=".">

<target name="build">
  <exec executable="C:\\PHP\\phpunit.bat" dir="C:\\workspace\\proj\\phpunit" failonerror="on">
     <arg line="--log-junit C:\\workspace\\proj\\build\\logs\\phpunit.xml
           --configuration C:\\workspace\\proj\\phpunit.xml
           --include-path C:\\trunk\\includes C:\\workspace\\proj\\includes" />
     </exec>
  </target>
</project>
0 голосов
/ 05 сентября 2012

это может быть вызвано некоторым пустым набором тестов в phpunit.xml, то есть нет assertXXX в тестовом коде

0 голосов
/ 16 февраля 2011

В моем случае оказалось, что у меня не установлен веб-сервер.Установка nginx и настройка его в качестве веб-сервера (даже если я его не использую) устранила проблему.

...