Logging

Logging

PHPUnit 可以生成几种类型的日志文件。

测试结果(XML)

PHPUnit 生成的测试结果的 XML 日志文件基于 JUnit 任务为 Apache Ant 使用的日志文件。以下示例显示了为以下各项中的测试生成的 XML 日志文件ArrayTest

<?xml version="1.0" encoding="UTF-8"?> <testsuites> <testsuite name="ArrayTest" file="/home/sb/ArrayTest.php" tests="2" assertions="2" failures="0" errors="0" time="0.016030"> <testcase name="testNewArrayIsEmpty" class="ArrayTest" file="/home/sb/ArrayTest.php" line="6" assertions="1" time="0.008044"/> <testcase name="testArrayContainsAnElement" class="ArrayTest" file="/home/sb/ArrayTest.php" line="15" assertions="1" time="0.007986"/> </testsuite> </testsuites>

以下 XML 日志文件是针对两个测试生成的,testFailure并且testError是一个名为 test case 的类,FailureErrorTest并显示了如何表示失败和错误。

<?xml version="1.0" encoding="UTF-8"?> <testsuites> <testsuite name="FailureErrorTest" file="/home/sb/FailureErrorTest.php" tests="2" assertions="1" failures="1" errors="1" time="0.019744"> <testcase name="testFailure" class="FailureErrorTest" file="/home/sb/FailureErrorTest.php" line="6" assertions="1" time="0.011456"> <failure type="PHPUnit_Framework_ExpectationFailedException"> testFailure(FailureErrorTest) Failed asserting that &lt;integer:2&gt; matches expected value &lt;integer:1&gt;. /home/sb/FailureErrorTest.php:8 </failure> </testcase> <testcase name="testError" class="FailureErrorTest" file="/home/sb/FailureErrorTest.php" line="11" assertions="0" time="0.008288"> <error type="Exception">testError(FailureErrorTest) Exception: /home/sb/FailureErrorTest.php:13 </error> </testcase> </testsuite> </testsuites>

代码覆盖率(XML)

由 PHPUnit 生成的用于代码覆盖率信息记录的 XML 格式松散地基于 Clover 使用的 XML 格式。以下示例显示了为以下各项中的测试生成的 XML 日志文件BankAccountTest

<?xml version="1.0" encoding="UTF-8"?> <coverage generated="1184835473" phpunit="3.6.0"> <project name="BankAccountTest" timestamp="1184835473"> <file name="/home/sb/BankAccount.php"> <class name="BankAccountException"> <metrics methods="0" coveredmethods="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/> </class> <class name="BankAccount"> <metrics methods="4" coveredmethods="4" statements="13" coveredstatements="5" elements="17" coveredelements="9"/> </class> <line num="77" type="method" count="3"/> <line num="79" type="stmt" count="3"/> <line num="89" type="method" count="2"/> <line num="91" type="stmt" count="2"/> <line num="92" type="stmt" count="0"/> <line num="93" type="stmt" count="0"/> <line num="94" type="stmt" count="2"/> <line num="96" type="stmt" count="0"/> <line num="105" type="method" count="1"/> <line num="107" type="stmt" count="1"/> <line num="109" type="stmt" count="0"/> <line num="119" type="method" count="1"/> <line num="121" type="stmt" count="1"/> <line num="123" type="stmt" count="0"/> <metrics loc="126" ncloc="37" classes="2" methods="4" coveredmethods="4" statements="13" coveredstatements="5" elements="17" coveredelements="9"/> </file> <metrics files="1" loc="126" ncloc="37" classes="2" methods="4" coveredmethods="4" statements="13" coveredstatements="5" elements="17" coveredelements="9"/> </project> </coverage>

代码覆盖率(TEXT)

用于命令行或文本文件的人类可读代码覆盖率输出。这种输出格式的目的是在处理一小组课程时提供快速覆盖概述。对于更大的项目,此输出对于快速了解项目范围或与--filter功能一起使用时很有用。当通过写入命令行来使用时,php://stdout将遵守--colors设置。写入标准输出是从命令行使用时的默认选项。默认情况下,这只会显示至少有一个覆盖线的文件。这只能通过showUncoveredFilesxml配置选项进行更改。请参阅“记录”一节。默认情况下,所有文件及其覆盖状态都显示在详细报告中。这可以通过showOnlySummary xml 配置选项进行更改。