在 Jenkins 中为基于 Kohana 的项目创建作业后,我无法弄清楚如何配置作业以运行单元测试。基本上我使用了来自http://jenkins-php.org/的模板,但是 Kohana 有其独特的设置,它不允许我像普通的 php 项目一样运行单元测试。由于 phpunit 命令不是从 CLI 运行的,因此我不断收到错误消息:
[exec] ErrorException [ 1 ]: Call to undefined method Log::instance() ~ SYSPATH/classes/kohana/core.php [ 336 ]
[exec] PHP Notice: Undefined index: REMOTE_ADDR in /var/lib/jenkins/jobs/Construct-A-Cost Deployment Build/workspace/application/bootstrap.php on line 70
[exec] PHP Fatal error: Call to undefined method Log::instance() in /var/lib/jenkins/jobs/Construct-A-Cost Deployment Build/workspace/system/classes/kohana/core.php on line 336
在 build.xml 中,我有
<target name="phpunit" description="Run unit tests with PHPUnit">
<mkdir dir="${basedir}/application/cache" />
<mkdir dir="${basedir}/application/logs" />
<exec dir="${basedir}/application/tests" executable="phpunit" failonerror="true" />
</target>
在 application/tests/phpunit.xml 中,我得到了
<phpunit colors="true" bootstrap="../../modules/unittest/bootstrap.php">
<testsuites>
<testsuite name="Calculation Tests">
<file>./classes/controller/calculation.php</file>
</testsuite>
</testsuites>
</phpunit>
任何人都可以分享您在 Jenkins 中设置 Kohana 工作的经验吗?谢谢!
更新:从 CLI 运行相同的测试,它可以在带有 PHPUnit 3.6.11 的 Windows XP 中工作,但它不能在带有 PHPUnit 3.7.18 的 Ubuntu Server 中工作