2012-04-23 4 views
13

Я изучаю канаты с модульным тестированием Zend Framework приложений. До сих пор я установил PHPUnit для работы с Zend Framework и начал писать несколько простых тестовых случаев.Покрытие кода PHPUnit

Моя проблема в том, что мне интересно, почему 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> 

Любой столкнуться с этим раньше? В чем же тогда проблема?

+3

У меня нет моего входа в систему внутри фильтра .... что может сделать немного разницу –

ответ

23

Вот phpunit.xml для одного из моих проектов, это прекрасно работает. Как вы можете видеть, раздел журнала находится за пределами секции фильтра, так что это, вероятно, ваша проблема, как прокомментировал Марк Бейкер. Я выбрал этот вариант, как из небольшого проекта, и очень прост.

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

+0

Вы абсолютно правы! Секция регистрации не должна была находиться в секции фильтра. – stevepop

Смежные вопросы