Отладка некоторых тестов PhpUnit в Eclipse
Я использую Eclipse PDT для PHP.
Я могу запускать свои тесты PhpUnit: отлично работает.
Но я не могу отлаживать свои модульные тесты.
Кто-то уже это сделал?
Может кто-нибудь помочь в этом?
Thanx,
Мессауд
Ответы
Ответ 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