我希望能够在Eclipse下用PHP启动单元测试。
所以我必须使用本教程http://blog.loftdigital.com/running-phpunit-tests-in-eclipse-pdt
安装带有PEAR和Makegood的Eclipse首先我安装了Eclipse Luna。 然后我添加了PHP开发工具插件 然后我安装了PEAR并使用它安装了PHPUnit。当我安装PHPUnit 3.7.30时PEAR下载了梨目录中的所有源代码,但是当我尝试安装4.0.7时没有。 然后我使用XDebug配置了PHP Debug(我使用xdebug.remote_enable = on从php.ini启用它),如教程中所述。 最后我为Eclipse安装了makegood插件。
但是当我打开Makegood视图时,我收到了消息: PHPUnit_Framework_TestCase类不可用。修复...
我错过了什么吗?
提前致谢
答案 0 :(得分:0)
MakeGood似乎不适用于Indigo(3.8)之后的版本。
Makeigo在Indigo中生成的示例命令行:
/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
在Juno / Kepler / Luna:
/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永远不会被调用 - 无论是否已定义,都不会触发bootstrap。
特别是对于你的错误,我猜你的自动加载器没有触发,因为没有引导
您可以通过将php可执行文件设置为硬编码testrunner.php路径的bash脚本来使用解决方法
#!/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 $@ | sed 's%-n %%' | sed 's%-c .+? %%'`
# Hardcode path to testrunner.php
options=`echo $options | sed 's@open_tag=on [^ ]*@open_tag=on /opt/testrunner.php@'`
/usr/bin/php $options