Подтвердить что ты не робот

Отладка некоторых тестов PhpUnit в Eclipse

Я использую Eclipse PDT для PHP. Я могу запускать свои тесты PhpUnit: отлично работает.

Но я не могу отлаживать свои модульные тесты. Кто-то уже это сделал? Может кто-нибудь помочь в этом?

Thanx, Мессауд

4b9b3361

Ответ 1

Пример более чем 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.

знаете, что вы можете отлаживать свой тестовый файл.

Ответ 2

Мы можем решить эту проблему с помощью нашего плагина Eclipse MakeGood.

MakeGood обеспечивает простой способ отладки ваших тестов. Вы только запускаете тест в режиме отладки. Для получения дополнительной информации см. руководство пользователя.

Debugging a test

Ответ 3

Для других, которые задаются вопросом, есть ли простые инструкции по настройке Eclipse/Aptana с phpunit, здесь я нашел веб-сайт:

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

Что вам нужно сделать в основном:

  • Убедитесь, что ваши библиотеки PEAR в вашем проекте включают путь. Щелкните правой кнопкой мыши по проекту в окне навигатора и выберите "Свойства". Вы увидите там раздел для PHP Include Path (или PHP Build Path в Aptana для моей версии), откройте это и добавьте свои библиотеки PEAR в ваш путь include/build, чтобы Eclipse знал о phpunit.
  • Создайте конфигурацию отладки, которая запускает файл phpunit.php(возможно, вам нужно будет добавить расширение .php в файл, если оно работает с помощью shebang, как это происходит в Mac OS X). Итак, с файлом phpunit.php в качестве "Начального действия" script установите "PHP Script Аргументы", чтобы файл проверки PHPUnit, который вас интересует, запускается phpunit.php. Добавьте любые другие аргументы командной строки, которые вам подходят. например. --verbose - хороший вариант. Вы также можете использовать переменные типа ${resource_loc}, чтобы Eclipse заменил его на текущий файл, например.
  • Запустите конфигурацию отладки и наслаждайтесь отладкой!

Вам не нужно изменять тестовые файлы или что-то еще, они будут работать из коробки.

Ответ 4

Наконец, я запускаю отладку параллельно командной строке в 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'));
}

Ответ 5

Я подтвердил, установив точку останова в моем методе 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