2012-12-13 111 views
7

如何從PHPUnit的代碼覆蓋範圍中排除基礎目錄?從PHPUnit中排除基礎目錄代碼覆蓋範圍

這是我phpunit.xml

<?xml version="1.0" encoding="UTF-8"?> 
<phpunit bootstrap="include.php" 
     stopOnError="false" 
     stopOnFailure="false" 
     stopOnIncomplete="false" 
     stopOnSkipped="false"> 
    <testsuite name="MyProject"> 
     <directory>classes/*</directory> 
    </testsuite> 
    <logging> 
     <log type="coverage-html" target="../reports/coverage" charset="UTF-8" yui="true" highlight="false" lowUpperBound="35" highLowerBound="70"/> 
     <log type="coverage-xml" target="../reports/coverage.xml"/> 
     <log type="test-xml" target="../reports/logfile.xml" logIncompleteSkipped="false"/> 
     <log type="testdox-html" target="../reports/testdox.html"/> 
     <log type="testdox-text" target="../reports/testdox.txt"/> 
    </logging> 
</phpunit> 

當輸出它包括所有基本目錄,如:

c:\work\some\path\MyProject 

我怎樣才能使它只包括在代碼覆蓋輸出...\MyProject\*

+2

你有沒有解決這個問題?我也想知道如何去做,但寫下答案的人很不幸誤解了你的問題。 – Julian

+1

@Julian yea我已經做了,但是前一陣子,所以我不得不去挖掘它。 – Petah

+2

請做!謝謝! – Julian

回答

5

您的回答並不能真正說明你的項目佈局,但我認爲你正在尋找的是:

Including and Excluding Files for Code Coverage

這允許你指定的文件白名單的PHPUnit會關心生成代碼時覆蓋。

不在該白名單上的所有內容都不會顯示在報告中。

這樣做,添加以下某個頂層:

<filter> 
    <whitelist processUncoveredFilesFromWhitelist="true"> 
    <directory suffix=".php">.../MyProject/</directory> 
    </whitelist> 
</filter> 
+0

對不起,如果我不清楚。我不想排除任何東西。我只想從代碼覆蓋率報告中刪除基本目錄。因此,舉個例子,如果我運行測試,然後打開CC報告,我必須點擊至少5個鏈接才能得到任何意義完整的東西。 'C:\' - >'work' - >'projects' - >'websites' - >'MyProject' - >'classes'。我只想在頂層有'MyProject',所以我可以點擊'MyProject' - >'classes'。 – Petah

+0

就我所知,有問題的''應該爲你做。可能是一個窗口或一些奇怪的問題,但總的來說,告訴phpunit「這是覆蓋的根文件夾」是這樣做的。 – edorian

+0

這個答案適合我。 –