Я использую PHPUnit 3.5.14 и у меня есть набор тестов, который покрывает 100% моего PHP-приложения, исключая определенные части с // @codeCoverageIgnore [Start | End]. Отчет о покрытии HTML показывает 100% охват. Но когда я создаю отчет о покрытии Clover XML, который я хотел бы, чтобы Дженкинс прочитал, чтобы обеспечить соблюдение требования о 100% покрытии, он показывает весь мой игнорируемый код как не покрытый.
Например, у меня есть класс контроллера с 20 методами, один из которых выглядит следующим образом:
// @codeCoverageIgnoreStart
/**
* Gets an instance of Foo. Abstracted for testing.
*
* @param array $options The constructor argument
*
* @return Foo
*/
protected function _getFoo(array $options)
{
return new Foo($options);
}
// @codeCoverageIgnoreEnd
В отчете о покрытии HTML показано 20 описанных методов, в том числе полностью игнорируемый:
рис .: выдержка из отчета о покрытии
http://i.imgur.com/VRtKR.png
Но в отчете Clover XML показано 19/20 описанных методов и не упоминается _getFoo:
<class name="CampaignController" namespace="global" (...)>
<metrics methods="20" coveredmethods="19" conditionals="0" coveredconditionals="0" statements="532" coveredstatements="532" elements="552" coveredelements="551"/>
...
<line num="592" type="stmt" count="1"/>
<line num="593" type="stmt" count="1"/>
<line num="615" type="method" name="createAction" crap="2" count="2"/>
<line num="617" type="stmt" count="2"/>
(строки _getFoo вверху - это строки 596-608.)
Раздел ведения журнала моей конфигурации PHPUnit выглядит следующим образом:
<logging>
<log type="coverage-html" target="../public/build/coverage" charset="UTF-8"
yui="true" highlight="true" lowUpperBound="90" highLowerBound="100"/>
<log type="coverage-clover" target="../public/build/test-coverage.xml"/>
</logging>
Есть ли способ настроить запись в журнале покрытия Clover или изменить мое покрытие, игнорируя комментарии, чтобы в отчете Clover отображалось 100% покрытие в соответствии с отчетом HTML?