12

我将 Eclipse PDT 用于 PHP。我可以运行我的 PhpUnit 测试:工作正常。

但我无法调试我的单元测试。有人已经这样做了吗?有人可以帮忙吗?

谢谢,梅萨乌德

4

5 回答 5

11

一个例子价值超过 1000 字:

require_once 'PHPUnit/Framework.php';
require_once 'PHPUnit/TextUI/TestRunner.php';

class MyTestCase extends PHPUnit_Framework_TestCase {

 protected function setUp() {
  parent::setUp ();

 }

 function testSimple() {
  echo "horray !";
 }

 protected function tearDown() {

  parent::tearDown();
 }

 static function main() {

  $suite = new PHPUnit_Framework_TestSuite( __CLASS__);
  PHPUnit_TextUI_TestRunner::run( $suite);
 }
}

if (!defined('PHPUnit_MAIN_METHOD')) {
    MyTestCase::main();
}

关键是:

  1. 在您的测试用例中提供一个主要方法

  2. 测试测试是直接执行(通过 php MyTestCase.php)还是由 phpunit 本身执行。如果直接执行 - 只需启动 testrunner。

知道你可以调试你的测试用例。

于 2009-11-13T17:30:22.667 回答
5

我们可以使用我们的 Eclipse 插件MakeGood来解决这个问题。

MakeGood 提供了一种调试测试的简单方法。您只能在调试模式下运行测试。有关详细信息,请参阅用户指南

调试测试

于 2011-04-13T10:35:08.023 回答
2

对于想知道是否有使用 phpunit 配置 Eclipse/Aptana 的简单说明的其他人,我找到了一个网站:

http://pkp.sfu.ca/wiki/index.php/Configure_Eclipse_for_PHPUnit

你要做的基本上是:

  1. 确保您的 PEAR 库位于项目的包含路径中。右键单击导航器窗口中的项目,然后单击属性。您将看到 PHP 包含路径(或我的版本的 Aptana 中的 PHP 构建路径)部分,打开它并将您的 PEAR 库添加到您的包含/构建路径,以便 Eclipse 了解 phpunit。
  2. 创建一个运行 phpunit.php 文件的调试配置(如果它使用 shebang 运行,您可能需要将 .php 扩展名添加到文件中,如 Mac OS X 中的情况)。因此,将 phpunit.php 文件作为“Start Action”脚本,设置“PHP Script Arguments”,以便您感兴趣的 PHPUnit 测试文件由 phpunit.php 运行。添加任何其他命令行参数以适合您。例如。--verbose 是一个不错的选择。例如,您还可以使用 ${resource_loc} 之类的变量让 Eclipse 将其替换为当前文件。
  3. 运行您的调试配置并享受调试!

你不需要修改你的测试文件或任何东西,它们会开箱即用。

于 2009-11-18T10:22:24.723 回答
2

我终于在 Eclipse 3.4 中与命令行并行运行调试。调试我作为“PHP 网页”运行,我的最小代码

require_once 'PHPUnit/Framework.php';
require_once 'PHPUnit/TextUI/TestRunner.php';
class XTest extends PHPUnit_Framework_TestCase{
    public function testX(){
        //...
    }
}
if (!defined('PHPUnit_MAIN_METHOD')) { 
    header('Content-type:text/plain; charset=utf-8');
    PHPUnit_TextUI_TestRunner::run( new PHPUnit_Framework_TestSuite( 'XTest'));
}
于 2009-12-21T07:54:13.730 回答
0

我已按照此处的说明在单元测试中的 setUp() 方法中设置断点来确认:

如何在 Eclipse 中调试 PHP 单元测试

它涉及将 /usr/bin/phpunit 文件复制到您的项目中(因此可以通过 eclipse 的 GUI 访问它),并向其中添加 .php 扩展名。从那里,转到您的调试配置并将 PHP-File 设置为该 phpunit.php 文件。

下一个重要步骤对我来说非常有用,因为我使用的是 Yii,它为我提供了 bootstrap.php 文件。把这样的东西放在你的参数中:

--bootstrap=${workspace_loc}/my-project/trunk/protected/tests/bootstrap.php ${workspace_loc}/my-project/trunk/protected/tests/unit/SomeClassToTest.php
于 2011-10-26T23:11:47.760 回答