PHPUnit代码覆盖如何忽略我的自动加载器?

时间:2012-07-09 17:23:56

标签: php zend-framework phpunit code-coverage zend-autoloader

我的phpunit配置中有一个运行Zend\Loader\StandardAutoloader.php的引导程序。当我添加

时,我可以通过PHPUnit代码覆盖来忽略它
<filter>
   <blacklist>
       <directory suffix=".php">/absolute/path/to/zf</directory>
   </blacklist>
</filter>

到PHPUnit配置XML文件。但我必须指定绝对路径。我希望它是一个相对路径,但PHPUnit并没有忽略代码覆盖中的Zend文件夹。当我在家工作时,我不想添加不同的位置,我不希望其他开发人员添加自己的路径。 Zend Framework在php.ini include_path设置中,但这不起作用:

<filter>
   <blacklist>
       <directory suffix=".php">./Zend</directory>
   </blacklist>
</filter>

有什么建议吗?

2 个答案:

答案 0 :(得分:10)

您可以使用<exclude>...</exclude>中的<filter><whitelist>指令从代码覆盖率中排除路径:

<filter>
    <whitelist>
        <directory suffix=".php">../src/library/</directory>
        <!-- add more directories -->
        <exclude>
            <directory suffix=".phtml">./src/application/</directory>
            <directory suffix=".php">./Zend/</directory>
            <!-- add more directories with relative or absolute path -->
        </exclude>
    </whitelist>
</filter>    

答案 1 :(得分:1)

实际上,这也可以通过黑名单来完成。路径需要相对于您的测试目录。

这在我的项目中起到了作用:

<filter>
    <blacklist>
        <directory suffix=".php">../../../cache</directory>
    </blacklist>
</filter>