我将按照本指南将PHP项目与Jenkins集成。
这是我build.xml
文件
这是来自运行ant -f build.xml
时的输出:
phpunit:
[exec] PHPUnit 3.6.10 by Sebastian Bergmann.
[exec] Usage: phpunit [switches] UnitTest [UnitTest.php]
[exec] phpunit [switches] <directory>
[exec] --log-junit <file> Log test execution in JUnit XML format to file.
[exec] --log-tap <file> Log test execution in TAP format to file.
[exec] --log-json <file> Log test execution in JSON format.
[exec] --coverage-clover <file> Generate code coverage report in Clover XML format.
[exec] --coverage-html <dir> Generate code coverage report in HTML format.
[exec] --coverage-php <file> Serialize PHP_CodeCoverage object to file.
[exec] --coverage-text=<file> Generate code coverage report in text format.
[exec] Default to writing to the standard output
[exec] ...
.
第 132 行周围的配置片段:
<target name="phpunit" description="Run unit tests with PHPUnit">
<exec executable="phpunit" failonerror="true"/>
</target>
phpunit/PHPUnit 已安装:
pear list -c phpunit
Installed packages, channel pear.phpunit.de:
============================================
Package Version State
File_Iterator 1.3.1 stable
PHPUnit 3.6.10 stable
PHPUnit_MockObject 1.1.1 stable
PHP_CodeBrowser 1.0.2 stable
PHP_CodeCoverage 1.1.2 stable
PHP_Invoker 1.1.0 stable
PHP_Timer 1.0.2 stable
PHP_TokenStream 1.1.3 stable
Text_Template 1.1.1 stable
phpcpd 1.3.5 stable
phploc 1.6.4 stable
回复 @oers 周四 5 月 3 日 20:31:50 ICT 2012:
我已经将构建.xml文件编辑为如下所示的内容:
<target name="phpunit" description="Run unit tests with PHPUnit">
<exec executable="phpunit" failonerror="true"/>
<arg line="--log-junit ${basedir}/build/logs/phpunit.xml serving" />
</target>
但没有任何变化。
我已经将构建.xml文件编辑为如下所示的内容:
您的构建.xml树结构中存在错误。
--- build.xml
+++ build.xml.new
@@ -1,4 +1,5 @@
<target name="phpunit" description="Run unit tests with PHPUnit">
- <exec executable="phpunit" failonerror="true"/>
+ <exec executable="phpunit" failonerror="true">
<arg line="--log-junit ${basedir}/build/logs/phpunit.xml serving" />
+ </exec>
</target>
从输出(用法:...)中可以看出,phpunit
需要一些参数才能正确执行。 <exec executable="phpunit" failonerror="true"/>
只会打印phpunit
和退出的帮助(例如直接从命令行调用phpunit
)。
在 phpunit 的官方指南中,你被告知像这样运行 phpunit:
<target name="phpunit">
<exec dir="${basedir}" executable="phpunit" failonerror="true">
<arg line="--log-xml ${basedir}/build/logs/phpunit.xml MoneyTest" />
</exec>
</target>
就我而言,我遇到了这个问题,因为我设置了一个错误 BaseDir,基本目录应设置为与项目路径相同或与 phpunit.xml.dist 相同的路径。
无论如何,您也可以在构建中指定phpunit配置文件路径.xml像这样
<target name="phpunit">
<exec dir="${basedir}" executable="phpunit" failonerror="true">
<arg line="-c /your/path/to/phpunit.xml.dist" />
<arg line="--log-xml ${basedir}/build/logs/phpunit.xml MoneyTest" />
</exec>
</target>