【问题标题】:Create code coverage report starting at root folder从根文件夹开始创建代码覆盖率报告
【发布时间】:2012-07-20 21:42:22
【问题描述】:

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

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

这意味着每次运行测试时,我都需要点击 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>

【问题讨论】:

    标签: unit-testing zend-framework phpunit


    【解决方案1】:

    我解决了这个问题...

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

    在白名单部分添加该行后:

    <directory>../application/</directory>
    

    它按预期工作。

    由于我的测试文件夹中没有任何库测试,包括 Zend 库文件夹可能没有任何效果,并且报告必须认为白名单为空。而且因为没有黑名单,所以只是从根开始。

    【讨论】:

      【解决方案2】:

      代码覆盖率从报告中包含的所有文件的最常用路径开始。因此,如果您的 Web 根目录位于 /var/www 中,并且您在 /usr/local/zend/ 中包含库,则最常见的路径将是根路径。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-11-08
        • 2020-02-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-17
        相关资源
        最近更新 更多