这里是phpunit.xml
:
<phpunit
bootstrap="bootstrap.php"
colors="false"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
stopOnFailure="false"
stopOnError="false"
stopOnIncomplete="false"
stopOnSkipped="false">
<filter>
<whitelist processUncoveredFilesFromWhitelist="true">
<directory suffix=".php">../modules</directory>
<directory suffix=".php">../models</directory>
<directory suffix=".php">../lib</directory>
<directory suffix=".php">../components</directory>
<exclude>
<directory suffix=".php">../modules/*/views</directory>
<directory suffix=".php">../modules/*/widgets</directory>
<directory suffix=".php">../modules/*/controllers</directory>
<directory suffix=".php">../modules/ClaimProfile</directory>
<directory suffix=".php">../modules/SocialNetworks</directory>
</exclude>
</whitelist>
</filter>
<logging>
<log type="coverage-clover" target="build/logs/clover.xml" />
<log type="junit" target="build/logs/junit.xml" logIncompleteSkipped="true" />
</logging>
</phpunit>
并且生成的clover.xml
包含有关命名空间类的信息,除了Jenkin的PHP-Clover插件之外的所有插件都会保留报告覆盖范围,而忽略了命名空间内的代码。 (即,报告中未显示定义名称空间的源文件,但列表中显示完全位于全局名称空间中的代码的文件)。
答案 0 :(得分:1)
最终遇到了同样的问题。 原来Jenkins Clover PHP插件包含错误:
可以很容易地看出,Clover Coverage Parser解析coverage / project,coverage / project / file和coverage / project / file / class对象。它忽略了coverage / project / package(以及里面的所有内容)。
这可以通过插件维护者轻松修复。