我有一个zend framework 2项目,我正在尝试设置我的jenkins,以便可以执行单元测试。 Jenkins正在运行ubuntu,我正在使用PHPStorm在Windows 7下进行开发。
的build.xml
<target name="phpunit" description="Run unit tests with PHPUnit">
<exec executable="phpunit" failonerror="true">
<arg value="${basedir}/module/Addressbook/test"/>
</exec>
</target>
phpunit: [exec] PHPUnit 3.7.13 by Sebastian Bergmann. [exec] [exec] PHP Fatal error: Class 'AddressbookTest\Bootstrap' not found in /var/lib/jenkins/workspace/Test/src/module/Addressbook/test/AddressbookTest/Controller/AddressbookControllerTest.php on line 28
我的本地计算机上的PHPStorm在运行phpunit.xml.dist时执行此操作
D:\Zend\ZendServer\bin\php.exe -d auto_prepend_file=D:/Zend/Apache2/htdocs/demoshop/vendor/autoload.php C:\Users\ChristianB\AppData\Local\Temp\ide-phpunit.php --configuration D:/Zend/Apache2/htdocs/demoshop/module/Addressbook/test/phpunit.xml.dist
我怎样才能将它用于詹金斯?
答案 0 :(得分:0)
看起来您的包含路径设置不正确,当有更好的选项时,我不会直接使用exec与PHPUNIT。
你应该考虑使用Jenkins的PHING任务,它们可以很好地协同工作。
然后设置Jenking来触发你的PHING目标,通过PHPUNIT任务为你运行单元测试,这是PHPUNIT的示例目标:
<target name="phpunit">
<phpunit bootstrap="${srcdir}/tests/bootstrap.php">
<formatter todir="${builddir}/reports" type="xml"/>
<batchtest>
<fileset dir="${srcdir}/tests">
<include name="**/*Test*.php"/>
<exclude name="**/Abstract*.php"/>
<exclude name="${srcdir}/vendor/**"/>
</fileset>
</batchtest>
</phpunit>
<!--
Generate a report from the XML data created..
note: error when using format="frames"
-->
<phpunitreport infile="${builddir}/reports/testsuites.xml"
format="noframes"
todir="${builddir}/reports/tests"
/>
</target>