PHPstorm PHPunit 代码共同覆盖

ale*_*ips 4 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 首选项中,我将“脚本路径”设置为我的 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>
Run Code Online (Sandbox Code Playgroud)

小智 5

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