【问题标题】:PHPUnit Code CoveragePHPUnit 代码覆盖率
【发布时间】:2012-05-04 07:17:07
【问题描述】:

我正在学习单元测试Zend Framework 应用程序的技巧。到目前为止,我已经设置了PHPUnitZend Framework 一起工作,并开始编写一些简单的测试用例。

我的问题是,我想知道为什么 Code Coverage 尽管在我的 phpunit.xml 的日志标签中设置了但仍不起作用。

我没有收到任何错误,但没有生成覆盖率报告。

但是当我运行phpunit --coverage <dir>时它可以工作

我的 phpunit 的日志记录部分如下:

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

        <filter>
            <whitelist>
                <directory suffix=".php">../application/</directory>
                <exclude>
                    <directory suffix=".phtml">../application</directory>
                    <file>../application/Bootstrap.php</file>
                    <file>../application/controllers/ErrorController.php</file>
                </exclude>
            </whitelist>
           <logging>
               <log type="coverage-html" target="./log/report" charset="UTF-8" yui="true"
   highlight="true" lowUpperBound="50" highLowerBound="80" />
               <log type="testdox" target="./log/testdox.html" />    
           </logging>
        </filter>
    </phpunit>

有人遇到过这种情况吗?那么可能的问题是什么?

【问题讨论】:

  • 我的日志没有嵌套在过滤器中......这可能会有所不同

标签: php zend-framework phpunit code-coverage


【解决方案1】:

这是我的一个项目的 phpunit.xml,它工作正常。如您所见,日志记录部分位于过滤器部分之外,因此这可能是您的问题,正如 Mark Ba​​ker 所评论的那样。我选择了这个,因为它来自一个小项目,非常简单。

<phpunit bootstrap="./bootstrap.php" colors="false">
    <testsuite name="HSSTests">
        <directory>./</directory>
    </testsuite>

    <filter>
        <whitelist>
            <directory suffix=".php">d:/wamp/app_hss/</directory>
            <exclude>
                <directory suffix=".phtml">d:/wamp/app_hss/</directory>
                <directory suffix=".php">d:/wamp/app_hss/tests/</directory>
            </exclude>
        </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>

您可能需要的所有信息都在PHPunit manual 中。

【讨论】:

  • 你完全正确!日志记录部分不应位于过滤器部分中。
猜你喜欢
  • 2018-05-29
  • 2012-08-04
  • 2012-01-18
  • 2012-01-14
  • 2011-05-27
  • 2014-04-16
  • 2017-02-22
  • 2011-01-18
  • 2015-11-08
相关资源
最近更新 更多