2012-04-23 10 views
13

Uczę się lin z aplikacjami testującymi jednostki Zend Framework. Do tej pory skonfigurowałem PHPUnit do pracy z Zend Framework i zacząłem pisać kilka prostych przypadków testowych.Kod PHPUnit Coverage

Mój problem polega na tym, że zastanawiam się, dlaczego Code Coverage nie działa pomimo ustawienia w tagu logowania w moim phpunit.xml.

Nie otrzymuję żadnego błędu, ale nie generuję raportu o zasięgu.

Jednak to działa gdy uruchamiam phpunit --coverage <dir>

Sekcja rejestrowanie mojego PHPUnit jest jak poniżej:

<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> 

Każdy spotkać tego wcześniej? Jaki jest prawdopodobny problem?

+3

Nie mam loginu zagnieżdżonego w filtrze ... to może zrobić różnicę –

Odpowiedz

23

Oto phpunit.xml dla jednego z moich projektów, to działa dobrze. Jak widać, sekcja logowania znajduje się poza sekcją filtra, więc prawdopodobnie jest to Twój problem, tak jak komentuje Mark Baker. Wybrałem ten, ponieważ pochodzi z małego projektu i jest bardzo prosty.

<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> 

Wszystkie informacje można kiedykolwiek potrzeba na ten temat znajduje się w PHPunit manual.

+0

Masz absolutną rację! Sekcja rejestrowania nie powinna znajdować się w sekcji filtru. – stevepop