使用PDT和MakeGood使PHPUnit测试在Eclipse中工作

时间:2015-07-24 21:05:42

标签: php eclipse mysqli phpunit

通常使用C和Java开发,我无法正确地在Eclipse中运行PHPUnit测试。

我在Ubuntu 15.04上安装了Eclipse Luna SR1(4.4.1)和PDT 3.4.0以及MakeGood 3.1.1。

首先我有错误

PHPUnit_Framework_TestCase class is not available. Fix...

在MakeGood中

并尝试将PEAR [Environment]用户库添加到构建路径以重复修复此问题

Cannot create linked resource '/.org.eclipse.dltk.core.external.folders/.link1'

可以通过添加

解决这个问题
<buildpathentry kind="con" path="org.eclipse.dltk.USER_LIBRARY/PEAR"/>

到Eclipse项目文件夹中的.buildpath

然后运行测试然后失败

Fatal error: Class 'PHPUnit_Framework_TestSuite' not found in [...] PHPUnitCollector.php on line 124

所以我创建了一个bootstrap.php

<?php 

include_once '/usr/share/php/PHPUnit/Autoload.php';
include_once '/usr/share/php/PHP/Token/Stream/Autoload.php';

phpunit.xml

<phpunit bootstrap="bootstrap.php">
</phpunit>

并将它们设置为&#34; Preload Script&#34;和&#34; XML配置文件&#34;在MakeGood项目属性中。

它更进一步,但现在测试失败了

Fatal error: Class 'mysqli' not found

这就是我现在失去的地方。

如果我使用

在命令行上运行测试

phpunit --coverage-html coverage .

它们都运行良好,并且还创建了HTML覆盖率报告。

在PHP可执行文件下的Eclipse首选项中,我选择了PHP CLI (Workspace Default)与位置/usr/bin/php;在命令行中使用相同的php可执行文件,所以我假设使用相同的php.ini ...所以我不知道为什么它在Eclipse中失败但在命令行上工作。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

最终我发现 - 在PHP可执行文件下的Eclipse首选项中,我必须将PHP 5.5.3 (CLI)设置为默认值并进行以下设置:

enter image description here

重要的是让“PHP ini file(optional)”字段为空,并选中“Use system default php.ini configuration”选项。

现在所有测试都在MakeGood中运行。