2013-05-01 90 views
0

當我爲我的PHP項目生成代碼覆蓋時,我總是得到Symfony自動加載器。PHPUnit - 如何忽略classloader的代碼覆蓋率?

我試過,沒有運氣添加此我PHPUnit的配置:你沒有指定後綴屬性黑名單中搜索特定類型的文件

<filter> 
    <blacklist> 
     <directory>/Symfony/Component</directory> 
    </blacklist> 
</filter> 

回答

1

首先

所以它應該是

<filter> 
    <blacklist> 
     <directory suffix=".php">/Symfony/Component</directory> 
    </blacklist> 
</filter> 

如果不爲你工作,那麼你可以使用白名單塊排除標籤

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

參考:How can PHPUnit code coverage ignore my autoloader?

+0

我試着添加沒有運氣的後綴。我將嘗試使用白名單方法(儘管在我看來,黑名單方法應該可行),但我不確定當我在eclipse中運行項目時的路徑。 – RedBullet 2013-05-02 20:26:37

0

我使用的是作曲家,試了幾個變化,包括白名單中排除:

我的目錄結構是這樣的:

... 
/project/tests 
/project/vendor 
/project/vendor/composer 
... 

我試圖讓白名單working:

<whitelist> 
    <exclude> 
     <directory suffix=".php">..\vendor\composer\</directory> 
     <directory suffix=".php">../vendor/composer/</directory> 
     <directory suffix=".php">..\composer\</directory> 
     <directory suffix=".php">../composer/</directory> 
    </exclude> 
</whitelist> 

這沒有奏效。但這並:

<filter> 
    <blacklist> 
     <directory suffix=".php">../vendor/composer</directory> 
    </blacklist> 
</filter> 

我的配置XML文件是測試文件夾中有一個引導文件一起加載在作曲家的自動加載。

<?php 

require_once(__DIR__. str_repeat(DIRECTORY_SEPARATOR. '..', 1) . DIRECTORY_SEPARATOR . 'vendor'. DIRECTORY_SEPARATOR . 'autoload.php');