phpUnderControl和PHPUnit始终无法生成,代码为255
我在phpUnderControl中设置了以下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
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>