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

Getting PHPUnit tests to work in Eclipse with PDT and MakeGood

提问人:Torsten Römer 提问时间:7/25/2015 更新时间:7/25/2015 访问量:2063

问:

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

我在 Ubuntu 15.04 上安装了 PDT 3.4.0 和 MakeGood 3.1.1 的 Eclipse Luna SR1 (4.4.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>

并在 MakeGood 项目属性中将它们设置为“预加载脚本”和“XML 配置文件”。

它走得更远,但现在测试失败了

Fatal error: Class 'mysqli' not found

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

如果我在命令行上运行测试

phpunit --coverage-html coverage .

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

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

有什么建议吗?

php eclipse mysqli phpunit

评论

0赞 ahmedsafan86 12/29/2015
您问题中的信息对我有用。

答:

0赞 Torsten Römer 7/25/2015 #1

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

enter image description here

这里重要的是将字段“PHP ini 文件(可选)”为空,并选中“使用系统默认php.ini配置”选项。

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