在Eclipse中调试一些PhpUnit测试

时间:2009-10-28 14:55:01

标签: eclipse debugging phpunit

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

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

感谢名单, Messaoud的

5 个答案:

答案 0 :(得分: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。

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

答案 1 :(得分:5)

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

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

Debugging a test

答案 2 :(得分:2)

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

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

你基本上要做的是:

  1. 确保您的PEAR库位于项目的包含路径中。在导航器窗口中右键单击项目,然后单击“属性”。你会看到有一个PHP Include Path(或者我的版本的Aptana中的PHP Build Path)部分,打开它并将你的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. 运行调试配置并享受调试!
  4. 您无需修改​​测试文件或任何内容,它们即可开箱即用。

答案 3 :(得分: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'));
}

答案 4 :(得分:0)

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

How to Debug Your PHP Unit Tests in Eclipse

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

下一个重要的步骤对我很有用,因为我正在使用Yii,它为我提供了一个bootstrap.php文件。把这样的东西放在你的args中:

--bootstrap=${workspace_loc}/my-project/trunk/protected/tests/bootstrap.php ${workspace_loc}/my-project/trunk/protected/tests/unit/SomeClassToTest.php