我使用Eclipse PDT for PHP。 我可以运行我的PhpUnit测试:工作正常。
但我无法调试我的单元测试。 有人已经这样做了吗? 有人可以帮忙吗?
感谢名单, Messaoud的
答案 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();
}
关键是:
在测试用例中提供主要方法
测试是否直接执行测试(通过php MyTestCase.php)或phpunit本身。如果直接执行 - 只需启动testrunner。
知道你可以调试你的测试用例。
答案 1 :(得分:5)
答案 2 :(得分:2)
对于其他想知道是否有关于使用phpunit配置Eclipse / Aptana的简单说明的人,这里有一个我找到的网站:
http://pkp.sfu.ca/wiki/index.php/Configure_Eclipse_for_PHPUnit
你基本上要做的是:
您无需修改测试文件或任何内容,它们即可开箱即用。
答案 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