2

我希望能够在 Eclipse 下的 PHP 中启动单元测试。

所以我必须使用本教程http://blog.loftdigital.com/running-phpunit-tests-in-eclipse-pdt安装带有 PEAR 和 Makegood 的 Eclipse

首先我安装了 Eclipse Luna。然后我添加了 PHP Development Tools 插件然后我安装了 PEAR 并使用它安装了 PHPUnit。当我安装 PHPUnit 3.7.30 时,PEAR 下载了 pear 目录中的所有源,但当我尝试安装 4.0.7 时没有。然后我按照教程中的描述使用 XDebug 配置了 PHP 调试(我使用 xdebug.remote_enable = on 从 php.ini 启用了它)。最后我为 Eclipse 安装了 makegood 插件。

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

我错过了什么 ?

提前致谢

4

1 回答 1

0

MakeGood 似乎不适用于 Indigo (3.8) 之后的版本。

MakeGood 在 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

在朱诺/开普勒/月球:

/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 $@ | 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
于 2014-05-04T12:37:02.577 回答