PHPUnit 不生成 clover.xml 报告文件
PHPUnit does not generate clover.xml report file
这些是我的配置:
phpunit.xml
<!-- http://phpunit.de/manual/4.1/en/appendixes.configuration.html -->
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
backupGlobals="false"
colors="true"
bootstrap="../usr/core/autoload.test.php"
>
<php>
<ini name="error_reporting" value="-1" />
<server name="KERNEL_DIR" value="usr/core/" />
</php>
<testsuites>
<testsuite name="Api">
<directory>../usr/Project/Api/*Bundle/Tests</directory>
</testsuite>
<testsuite name="Backend">
<directory>../usr/Project/Backend/*Bundle/Tests</directory>
</testsuite>
<testsuite name="CMS">
<directory>../usr/Project/CMS/*Bundle/Tests</directory>
</testsuite>
<testsuite name="Console">
<directory>../usr/Project/Console/*Bundle/Tests</directory>
</testsuite>
<testsuite name="Im">
<directory>../usr/Project/Im/*Bundle/Tests</directory>
</testsuite>
<testsuite name="Library">
<directory>../usr/Project/Library/*Bundle/Tests</directory>
</testsuite>
<testsuite name="Registration">
<directory>../usr/Project/Registration/*Bundle/Tests</directory>
</testsuite>
<testsuite name="TestSuite">
<directory>../usr/tests</directory>
</testsuite>
</testsuites>
<filter>
<whitelist addUncoveredFilesFromWhitelist="true">
<directory>usr</directory>
<exclude>
<directory>../usr/*Bundle/Resources</directory>
<directory>../usr/*/*Bundle/Resources</directory>
<directory>../usr/*/Bundle/*Bundle/Resources</directory>
</exclude>
</whitelist>
</filter>
</phpunit>
和蚂蚁配置:
<target name="phpunit"
unless="phpunit.done"
description="Run unit tests with PHPUnit">
<exec executable="${phpunit}" resultproperty="result.phpunit" taskname="phpunit">
<arg value="--configuration" path="${basedir}/build/phpunit.xml"/>
<arg value="--coverage-clover" path="${basedir}/build/logs/clover.xml"/>
<arg value="--log-junit" path="${basedir}/build/logs/phpunit.xml"/>
</exec>
<property name="phpunit.done" value="true"/>
</target>
到目前为止一切正常。
但是当我在 jenkins 中执行时,我收到以下消息:
Clover xml file does not exist in: /var/lib/jenkins/workspace/Project5FullBuild called: build/logs/clover.xml and will not be copied to: /var/lib/jenkins/jobs/Project5FullBuild/builds/39/cloverphp/clover.xml
Could not find 'build/coverage/build/logs/clover.xml'. Did you generate the XML report for Clover?
我检查了日志目录。
不存在 clover.xml。
我也已经检查了其他几个 google 提示,但到目前为止没有任何帮助。
我错过了什么?
如果您的配置文件中的 whitelisting 没有生成文件,据我所知,phpunit 将不会生成覆盖 xml 文件。
尝试修改您的过滤器元素以确保它包含文件,例如:
<filter>
<whitelist processUncoveredFilesFromWhitelist="true">
<directory suffix=".php">somedir</directory>
</whitelist>
</filter>
在我的例子中,必须安装 php-xdebug
模块,否则它不起作用。
这些是我的配置:
phpunit.xml
<!-- http://phpunit.de/manual/4.1/en/appendixes.configuration.html -->
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
backupGlobals="false"
colors="true"
bootstrap="../usr/core/autoload.test.php"
>
<php>
<ini name="error_reporting" value="-1" />
<server name="KERNEL_DIR" value="usr/core/" />
</php>
<testsuites>
<testsuite name="Api">
<directory>../usr/Project/Api/*Bundle/Tests</directory>
</testsuite>
<testsuite name="Backend">
<directory>../usr/Project/Backend/*Bundle/Tests</directory>
</testsuite>
<testsuite name="CMS">
<directory>../usr/Project/CMS/*Bundle/Tests</directory>
</testsuite>
<testsuite name="Console">
<directory>../usr/Project/Console/*Bundle/Tests</directory>
</testsuite>
<testsuite name="Im">
<directory>../usr/Project/Im/*Bundle/Tests</directory>
</testsuite>
<testsuite name="Library">
<directory>../usr/Project/Library/*Bundle/Tests</directory>
</testsuite>
<testsuite name="Registration">
<directory>../usr/Project/Registration/*Bundle/Tests</directory>
</testsuite>
<testsuite name="TestSuite">
<directory>../usr/tests</directory>
</testsuite>
</testsuites>
<filter>
<whitelist addUncoveredFilesFromWhitelist="true">
<directory>usr</directory>
<exclude>
<directory>../usr/*Bundle/Resources</directory>
<directory>../usr/*/*Bundle/Resources</directory>
<directory>../usr/*/Bundle/*Bundle/Resources</directory>
</exclude>
</whitelist>
</filter>
</phpunit>
和蚂蚁配置:
<target name="phpunit"
unless="phpunit.done"
description="Run unit tests with PHPUnit">
<exec executable="${phpunit}" resultproperty="result.phpunit" taskname="phpunit">
<arg value="--configuration" path="${basedir}/build/phpunit.xml"/>
<arg value="--coverage-clover" path="${basedir}/build/logs/clover.xml"/>
<arg value="--log-junit" path="${basedir}/build/logs/phpunit.xml"/>
</exec>
<property name="phpunit.done" value="true"/>
</target>
到目前为止一切正常。 但是当我在 jenkins 中执行时,我收到以下消息:
Clover xml file does not exist in: /var/lib/jenkins/workspace/Project5FullBuild called: build/logs/clover.xml and will not be copied to: /var/lib/jenkins/jobs/Project5FullBuild/builds/39/cloverphp/clover.xml
Could not find 'build/coverage/build/logs/clover.xml'. Did you generate the XML report for Clover?
我检查了日志目录。 不存在 clover.xml。 我也已经检查了其他几个 google 提示,但到目前为止没有任何帮助。 我错过了什么?
如果您的配置文件中的 whitelisting 没有生成文件,据我所知,phpunit 将不会生成覆盖 xml 文件。
尝试修改您的过滤器元素以确保它包含文件,例如:
<filter> <whitelist processUncoveredFilesFromWhitelist="true"> <directory suffix=".php">somedir</directory> </whitelist> </filter>
在我的例子中,必须安装 php-xdebug
模块,否则它不起作用。