PHP单元测试覆盖率

时间:2014-10-15 15:42:17

标签: php code-coverage

我是PHP开发的新手,但有开发Python Web应用程序的经验。在Python中,有一个名为Coverage的包,它可以分析代码并识别缺少单元测试的功能。

PHP世界中是否存在这样的包?我搜索过谷歌和搜索引擎优化并且做得很短。谢谢你的帮助!

5 个答案:

答案 0 :(得分:2)

PHPUnit支持代码覆盖,是事实上的标准。与Jenkins等人合作

https://phpunit.de/manual/current/en/code-coverage-analysis.html

答案 1 :(得分:1)

PHPUnit内置了覆盖。您可以使用

生成html覆盖率报告
phpunit --coverage-html /[path where to save report]

另一个选项是--coverage-clover,而不是--coverage-html。这将生成一个关于所涵盖内容的xml报告。

如果您使用像phpStorm这样的高级IDE,您只需右键单击测试并选择" Run with coverage",它将在编辑器的文件浏览器中显示覆盖范围。

答案 2 :(得分:1)

PHPUnit本身具有使用PHP_CodeCoverage

的覆盖工具

此页面显示所有不同的覆盖选项:https://phpunit.de/manual/current/en/textui.html

示例html输出覆盖命令行将是:

phpunit ./report tests/*

这将创建一个名为report的文件夹,其中包含tests / folder

下所有测试的所有覆盖范围

答案 3 :(得分:0)

此外,您可以通过使用json文件检查项目模块中通过或失败的案例数来生成案例报告。

将此代码添加到phpnit.xml文件中:

<log type="json" target="./log/jsonreport.json" charset="UTF-8"/>

运行后,应该存在已通过案例列表的生成文件(jsonreport.json)。

答案 4 :(得分:0)

是有许多代码覆盖工具。 将以下链接添加到您的phpunit.xml

<logging>
    <log type="coverage-html" target="./mainreport" charset="UTF-8"
         yui="true" highlight="true"
         lowUpperBound="50" highLowerBound="80" />
</logging>

安装XDEBUG,(ex: for ubuntu and php7 - sudo apt-get install php7.0-xdebug)

这会将您的报告记录到target属性中指定的目录(target =&#34; ./ mainreport&#34;)。报告也将采用html格式

在根目录中创建一个mainreport目录。 进行单元测试 在浏览器中打开index.html,您可以看到覆盖率报告。

相关问题