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

时间:2012-07-22 09:48:02

标签: unit-testing zend-framework phpunit

我刚刚创建了一个新的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>

2 个答案:

答案 0 :(得分:1)

我解决了问题......

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

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

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

它按预期工作。

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

答案 1 :(得分:0)

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

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