Unit testing 从根文件夹开始创建代码覆盖率报告

Unit testing 从根文件夹开始创建代码覆盖率报告,unit-testing,zend-framework,phpunit,Unit Testing,Zend Framework,Phpunit,我刚刚创建了一个新的zend framework应用程序来尝试单元测试 我已经按照教程进行了学习,似乎所有的测试工作都正常。覆盖率报告的显示有问题。它显示正确的信息,但报告从硬盘的根开始,我需要遍历树到项目文件夹以查看有用的信息 这意味着每次运行测试时,我都需要单击5个文件夹以获取实际的报告 如何在项目文件夹中启动报告?这是我的phpunit配置文件: <phpunit bootstrap="./bootstrap.php"> <testsuite name="Appl

我刚刚创建了一个新的zend framework应用程序来尝试单元测试

我已经按照教程进行了学习,似乎所有的测试工作都正常。覆盖率报告的显示有问题。它显示正确的信息,但报告从硬盘的根开始,我需要遍历树到项目文件夹以查看有用的信息

这意味着每次运行测试时,我都需要单击5个文件夹以获取实际的报告

如何在项目文件夹中启动报告?这是我的phpunit配置文件:

<phpunit bootstrap="./bootstrap.php">
    <testsuite name="Application Test Suite">
        <directory>./application</directory>
    </testsuite>
    <testsuite name="Library Test Suite">
        <directory>./library</directory>
    </testsuite>

    <filter>
        <whitelist>
            <directory>../../library/Zend</directory>
            <exclude>
                <directory suffix=".phtml">../application/</directory>
                <file>../application/Bootstrap.php</file>
                <file>../application/controllers/ErrorController.php</file>
            </exclude>          
        </whitelist>
    </filter>

    <logging>
        <log type="coverage-html" target="./log/report" charset="UTF-8" yui="true" 
             hightlight="true" lowupperbound="50" highlowerbound="80">
            <log type="testdox" target="./log/testdox.html">
            </log>
        </log>
    </logging>
</phpunit>

/申请
/图书馆
../../library/Zend
../application/
../application/Bootstrap.php
../application/controllers/ErrorController.php

对于报告中包含的所有文件,代码覆盖范围从最常见的路径开始。因此,如果您的web根位于/var/www中,并且在/usr/local/zend/中包含库,那么最常见的路径将是根路径

解决方案是排除库路径,因为通常您不想测量外部库的代码覆盖率。

我解决了这个问题

我需要在白名单中明确指定我的应用程序文件夹。如果为空,则代码覆盖率报告仅从“c:”开始,并尝试查找每个“.php”文件

在白名单部分添加行后:

<directory>../application/</directory>
。/应用程序/
它按预期工作

因为我的测试文件夹中没有任何库测试,包括Zend library文件夹可能没有任何效果,并且报告一定认为白名单是空的。因为没有黑名单,它只是从根开始