2014-03-12 76 views
2

我希望能够在Eclipse下使用PHP进行单元测试。Eclipse Luna + PHPUnit + MakeGood

于是,我只好用PEAR和明钜使用本教程http://blog.loftdigital.com/running-phpunit-tests-in-eclipse-pdt

首先,我安装了Eclipse红月安装Eclipse。 然后我添加了PHP开发工具插件 然后我安装了PEAR并使用它安装了PHPUnit。当我安装PHPUnit 3.7.30 PEAR时,我下载了pear目录下的所有源代码,但是当我尝试安装4.0.7时却没有。 然后我使用XDebug配置了PHP Debug(我使用xdebug.remote_enable = on从php.ini启用了它),如教程中所述。 最后我安装了Eclipse的makegood插件。

但是,当我打开Makegood视图时,我收到消息:PHPUnit_Framework_TestCase类不可用。修复...

我错过了什么吗?

在此先感谢

+1

您是否添加了一个用于查找PHPUnit文件的引导程序? –

回答

0

明钜似乎并不为版本高于靛蓝(3.8)工作。在靛蓝由明钜产生

示例命令行:

/usr/bin/php -c /tmp/zend_debug/session5741147879914839410.tmp/php.ini -d asp_tags=off -d short_open_tag=on /home/dev/.eclipse/org.eclipse.platform_3.8_155965261/plugins/com.piece_framework.makegood.stagehandtestrunner_2.5.0.v201311031709/resources/php/bin/testrunner.php --no-ansi phpunit -p /home/dev/workspace/Acme/app/bootstrap.php.cache --log-junit=/tmp/com.piece_framework.makegood.launch/MakeGood1399206591471.xml --log-junit-realtime --phpunit-config=/home/dev/workspace/Acme/app/phpunit.xml.dist -R --test-file-pattern=Test(?:Case)?\.php$ /home/dev/workspace/Acme/src/Yuav/AcmeBundle/Tests 

而且在朱诺/开普勒/露娜:

/usr/bin/php -c /tmp/zend_debug/session3820024215614976335.tmp/php.ini -d asp_tags=off -d short_open_tag=on /home/dev/workspace/Acme/src/Yuav/AcmeBundle/Tests/Controller/JobControllerTest.php --no-ansi phpunit -p /home/dev/workspace/Acme/app/bootstrap.php.cache --log-junit=/tmp/com.piece_framework.makegood.launch/MakeGood1399206154221.xml --log-junit-realtime --phpunit-config=/home/dev/workspace/Acme/app/phpunit.xml.dist -R --test-file-pattern="Test(?:Case)?\.php$" /home/dev/workspace/Acme/src/Yuav/AcmeBundle/Tests 

正如你所看到的,testrunner.php不会被调用 - 和引导是永远无论是否定义,都会触发。

特别是对于你的错误,我猜它是磁带自动加载机无法触发,由于缺乏引导

您可以通过PHP可执行文件设置为一个bash脚本硬编码到TestRunner的路径中使用的一种解决方法。 php

#!/bin/bash 
# MakeGood for PHP stopped working after Eclipse Indigo (3.8) due to inability to run testrunner.php 
# This is a hack PHP binary, to be configured as PHP executable for MakeGood to start working in Juno, Kepler and Luna. 

# Remove the -n operator to read all config files 
options=`echo [email protected] | sed 's%-n %%' | sed 's%-c .+? %%'` 

# Hardcode path to testrunner.php 
options=`echo $options | sed '[email protected]_tag=on [^ ]*@open_tag=on /opt/[email protected]'` 

/usr/bin/php $options