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 <integer:2> matches expected value <integer:1>.
/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
设置。写入标准输出是从命令行使用时的默认选项。默认情况下,这只会显示至少有一个覆盖线的文件。这只能通过showUncoveredFiles
xml配置选项进行更改。请参阅“记录”一节。默认情况下,所有文件及其覆盖状态都显示在详细报告中。这可以通过showOnlySummary
xml 配置选项进行更改。