Я использую Eclipse PDT для PHP. Я могу запускать свои тесты PhpUnit: отлично работает.
Но я не могу отлаживать свои модульные тесты. Кто-то уже это сделал? Может кто-нибудь помочь в этом?
Thanx, Мессауд
Я использую Eclipse PDT для PHP. Я могу запускать свои тесты PhpUnit: отлично работает.
Но я не могу отлаживать свои модульные тесты. Кто-то уже это сделал? Может кто-нибудь помочь в этом?
Thanx, Мессауд
Пример более чем 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.
знаете, что вы можете отлаживать свой тестовый файл.
Мы можем решить эту проблему с помощью нашего плагина Eclipse MakeGood.
MakeGood обеспечивает простой способ отладки ваших тестов. Вы только запускаете тест в режиме отладки. Для получения дополнительной информации см. руководство пользователя.
Для других, которые задаются вопросом, есть ли простые инструкции по настройке Eclipse/Aptana с phpunit, здесь я нашел веб-сайт:
http://pkp.sfu.ca/wiki/index.php/Configure_Eclipse_for_PHPUnit
Что вам нужно сделать в основном:
Вам не нужно изменять тестовые файлы или что-то еще, они будут работать из коробки.
Наконец, я запускаю отладку параллельно командной строке в 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'));
}
Я подтвердил, установив точку останова в моем методе setUp() внутри моего unit test, следуя инструкциям здесь:
Как отлаживать тесты модуля PHP в Eclipse
Он включает в себя копирование файла /usr/bin/phpunit в ваш проект (поэтому он доступен через графические интерфейсы eclipse) и добавляет к нему расширение .php. Оттуда перейдите к своим конфигурациям отладки и установите PHP файл в этот файл 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