phpUnderControl和PHPUnit始终无法生成,代码为255

phpUnderControl和PHPUnit始终无法生成,代码为255,phpunit,cruisecontrol,phpundercontrol,Phpunit,Cruisecontrol,Phpundercontrol,我在phpUnderControl中设置了以下build.xml文件 <target name="phpunit"> <exec executable="phpunit" dir="${basedir}/httpdocs" failonerror="on"> <arg line="--log-junit ${basedir}/build/logs/phpunit.xml --coverage-clove

我在phpUnderControl中设置了以下
build.xml
文件

    <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>
我已经在unit目录中手动运行了非常简单的单元测试,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,我确实希望它在任何错误时失败,问题是没有任何错误,但它仍然失败

255
是PHP在出现致命错误和(我认为)解析错误时抛出的错误代码

可能在测试运行之后,脚本执行中会出现致命错误或解析错误吗


有PHP错误吗?如果添加
错误报告(E_ALL),会发生什么情况

可能“exec returned:255”是由CodeCoverage报告的内存消耗引起的,该报告将在启用错误报告(E_ALL)后显示,如Pekka所述。尝试
init_set('display_errors','on')也是。通常,您将面临“内存大小…耗尽”的致命问题。

在我的情况下,结果是我没有安装Web服务器。安装nginx并将其设置为Web服务器(即使我没有使用它)解决了这个问题。

这可能是由于
phpunit.xml
中的一些空测试套件造成的,也就是说,测试代码中没有assertXXX

我得到了Selenium、phpunit、PHPUnderControl和CruiseControl都在一起工作(这里)

这只是一个非常基本的例子,但我能够让它像这样工作。从简单的事情开始,把其他的东西复制回来

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


错误报告处于启用状态,但我添加了func调用,并且通过直接执行PHPUnit或使用ant通过phpUnderControl输出任何其他内容。@Gcoop奇怪。“显示错误”是否也打开?ant是否通过它运行的程序的stdout/stderr输出?也许将登录重定向到一个文件,只是为了看看错误是否被吞没在某个地方?(可以在php.ini中完成)非常感谢,显示错误在php.ini中被关闭:(太傻了。输出现在告诉我问题出在哪里!这与单元测试无法找到其测试的文件有关,非常感谢。
<?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>