PHPstorm PHPunit代码co覆盖

时间:2015-04-20 23:07:33

标签: php phpunit code-coverage phpstorm

当我在PHPstorm中运行我的测试套件时,代码覆盖率会返回0%(我知道这不是真的),当我从命令行运行PHPunit时,记录的HTML输出文档显示我实际上有覆盖范围并列出所有详细信息。

在PHPstorm中,我的PHP解释器设置为/ usr / local / bin / php(PHP 5.6.7)和xdebug 2.3.2(屏幕截图:https://dl.dropboxusercontent.com/u/379071/Screen%20Shot%202015-04-20%20at%206.57.39%20PM.png)。在我的PHPunit首选项中,我将'path to script'设置为我的composer autoload.php文件。在我的运行时配置中,我将PHPunit运行时设置为使用“已定义的配置文件”运行(参见下文)。当我运行时,所有测试都会运行并通过(失败显示堆栈跟踪),但代码覆盖率对于所有内容都是完全为零。

非常感谢任何帮助。我确定我错过了一些东西。

我的XML配置文件的内容:

<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="./tests/bootstrap.php"
         colors="true">
    <testsuites>
        <testsuite>
            <directory>tests</directory>
        </testsuite>
    </testsuites>
    <filter>
        <whitelist>
            <directory suffix=".php">src</directory>
        </whitelist>
    </filter>
    <logging>
        <log type="coverage-html" target="./log/codeCoverage" charset="UTF-8"
             yui="true" highlight="true"
             lowUpperBound="50" highLowerBound="80"/>
        <log type="testdox-html" target="./log/testdox.html"/>
    </logging>
</phpunit>

2 个答案:

答案 0 :(得分:4)

我知道这是一个旧线程,但我刚遇到这个问题。在我的例子中,项目路径包含一个不同高清的符号链接。通过将项目根目录更改为绝对路径(/ media / hdd / ...),我能够解决问题。

答案 1 :(得分:-2)

可能你只是在phpstorm中运行没有代码覆盖率的测试。您可以调用Run with coverage操作。我有类似的配置,一切正常。

enter image description here