PHPUnit HTML代码覆盖率错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHPUnit HTML代码覆盖率错误相关的知识,希望对你有一定的参考价值。

我有phpUnit 5.4.6和PHP 5.6.16与Xdebug 2.4.0RC2。

html代码覆盖率给出了这个错误:

Undefined property: SebastianBergmannCodeCoverageCodeCoverage::$container

实际生成了一些HTML输出:

<!DOCTYPE html>
<html lang="en" xmlns:ng="http://angularjs.org">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="description" content="" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <script type="text/javascript">
        var baseUrl         = '

PHP框架是Symfony 2.它是指Symfony容器还是其他东西?有什么想法从哪里开始调试?

更新:

奇怪的是,使用--filter选项运行一些测试我得到了一个更复杂的错误消息:

Notice: Undefined property: PHP_CodeCoverage::$container 
in [...]srcIndexHomeBundleResourcesviewsHome404.html.php on line 8

所以它与Symfony有关......

答案

因此,错误是由PHPUNIT分析模板文件的事实产生的。那个不完整的HTML输出实际上是模板中的字符串。

为了解决这个问题,我将设置从phpunit.xml更改为仅定位所需的文件夹。

<filter>
    <whitelist processUncoveredFilesFromWhitelist="true">
        <directory suffix=".php">../src/*/*/Controller/</directory>
        <directory suffix=".php">../src/Models/</directory>
    </whitelist>
</filter>

以上是关于PHPUnit HTML代码覆盖率错误的主要内容,如果未能解决你的问题,请参考以下文章

Phpunit 错误“此 PHPDBG 版本不支持代码覆盖率”

xdebug : phpunit 代码覆盖的致命错误

如何用PHPUnit生成代码覆盖率报告

在单独的进程中运行测试时,PHPUnit 无法生成代码覆盖率

没有配置白名单,没有代码覆盖会产生错误

markdown [代码覆盖率Phpunit]安装Xdebug并使用Phpunit运行代码覆盖率#xdebug #phpunit #code #coverage