代码之家  ›  专栏  ›  技术社区  ›  rr.

PHPUnit代码覆盖率不适用于配置

  •  3
  • rr.  · 技术社区  · 14 年前

    我有我的PHPUnit设置和覆盖率报告没有白名单过滤器工作良好。但是,一旦我添加了一个,报告似乎只生成了一部分,就好像PHPUnit意外退出一样。我没有收到任何错误或警告。

    <?xml version="1.0" encoding="UTF-8"?>
    <phpunit bootstrap="./bootstrap.php"
             colors="true">
        <testsuites>
            <testsuite name="...">
                <testsuite name="...">
                    <directory>./path/to/suite</directory>
                </testsuite>
                <testsuite name="...">
                    <directory>./path/to/suite2</directory>
                </testsuite>
                <testsuite name="...">
                    <directory>./path/to/suite3</directory>
                </testsuite>
            </testsuite>
        </testsuites>
    
        <filter>
            <whitelist>
                <directory suffix=".php">../path/to/files</directory>
            </whitelist>
        </filter>
    
        <logging>
            <log type="coverage-html" target="log/" charset="UTF-8" yui="true" />
        </logging>
    </phpunit>
    

    你知道会出什么问题吗?

    2 回复  |  直到 14 年前
        1
  •  2
  •   rr.    14 年前

    原来在我白名单上的文件里有一些停止脚本的程序代码。

        2
  •  1
  •   HMR    12 年前

    抱歉,我查了一个旧的,但我搜索了phpunit代码覆盖率不工作,这个出现了。

    然后,当我创建一个新的测试时,它突然停止工作,运行的代码被标记为未覆盖。

    删除它们为我解决了这个问题,xdebug现在被再次使用,并且突然有了100%的覆盖率。

    关于覆盖率的一点意见是:只要调用一个方法就可以在报告中覆盖它,但大多数情况下不能被视为覆盖了。用空值和无效值调用它会覆盖它。