phing vs phpunit代码覆盖率结果

时间:2010-02-17 19:28:55

标签: php code-coverage phpunit phing

我为phing创建了一个build.xml文件来创建代码覆盖率报告。它使用

phpunit codecoverage="true"

并指向与phpunit --coverage-html相同的文件。然而,结果不同。使用phing我有100%的代码覆盖所有文件,我没有。可能有一些我不知道的运行代码覆盖与phing解释这100%。得到不同结果我做错了什么?

2 个答案:

答案 0 :(得分:4)

您可以尝试将phpunit作为可执行文件运行,并将--coverage-html作为参数运行(这就是我们这样做并且似乎运行良好)。

示例:

<target name="phpunit">
 <exec executable="phpunit" dir="${basedir}/source" failonerror="on">
  <arg line="--log-junit ${basedir}/build/logs/phpunit.xml
  --coverage-clover ${basedir}/build/logs/phpunit.coverage.xml
  --coverage-html ${basedir}/build/coverage
  tests/" />
 </exec>
</target>

答案 1 :(得分:2)

第一个答案中的示例不起作用。 Ant的这个例子。 Phing ExecTask不支持'arg'作为嵌套元素。

Phing的工作示例:

<target name="phpunit">
    <exec command="phpunit --log-junit ${logsdir}/phpunit.xml 
        --coverage-clover ${logsdir}/phpunit.coverage.xml 
        --coverage-html ${logsdir}/coverage 
        tests/" />
</target>