2013-06-14 11 views
6

Używam PHPStorm który jest skonfigurowany do korzystania Xdebug (można debugować za pomocą przeglądarki internetowej, po prostu w porządku)Próbując testów jednostkowych debug phpunit na CLI korzystających Xdebug nie

uruchomić debugger w PHPStorm który ma idekey od 11854 i próbuję debugować badanej jednostki, a ja właściwie ustawić punkty przerwania

więc wykonywane polecenia przez CLI:

phpunit -d xdebug.profiler_enable=on -d xdebug.idekey=11854 --filter testFunction s_function/sFunctionTest.php 

Niemniej jednak, że nie będzie debugowania u Punkt przerwania odpowiednio ...

gdy próbowałem wykonywanie tego w skrypcie testowym:

error_log(ini_get('xdebug.profiler_enable')); 
error_log(ini_get('xdebug.idekey')); 

to okaże się, że xdebug.profiler_enable jest 0 i xdebug.idekey jest tylko moja nazwa użytkownika.

Co robię źle i jak mogę dostać Xdebug pracować nad PHPUnit poprzez CLI

+0

Jeśli jesteś w stanie debugować normalne skrypty w trybie ** CLI ** w PhpStorm ..następnie wykonaj to samo, ale z PHPUnit: utwórz Run/Debug Configuration typu PHPUnit, wypełnij wszystkie wymagane pola, aby można było uruchomić go w PHPUnit .. i zamiast "Run" użyj przycisku "Debugowanie". – LazyOne

Odpowiedz

7

Jesteś po prostu ustawienie argumenty phpunit, nie PHP. Poniższa powinien robić to, co chcesz:

php -d xdebug.profiler_enable=on -d xdebug.idekey=11854 `which phpunit` --filter testFunction s_function/sFunctionTest.php 
+0

Czy możesz wyświetlić zrzut ekranu na temat oczekiwanego wyniku po uruchomieniu tego polecenia? – Jhn

+0

powinieneś wyjaśnić, co i dlaczego używasz parametrów? –

2

xdebug docs otrzymując roztwór, który wygląda prostsze ...

export XDEBUG_CONFIG="idekey=session_name" 
php myscript.php 

Raz, że zmienna jest ustawiona, można uruchomić skryptów z linii poleceń jako normalne (dla tej sesji SSH) i PHP użyje tej konfiguracji.

Także nuty:

Można również skonfigurować xdebug.remote_host, xdebug.remote_port, xdebug.remote_mode i xdebug.remote_handler w tej samej zmiennej środowiska dopóki rozdzielić wartości przez przestrzeń

0

w Ubuntu do debugowania CLI Uważam, że jedynym sposobem, aby zmusić go do pracy było dodanie następujących do pliku ~/.bashrc

export PHP_IDE_CONFIG='serverName=localhost' 
export XDEBUG_CONFIG='idekey=PHPSTORM' 

Zamień idekey = ?? do 11854 w twoim przykładzie. Pamiętaj, aby rozpocząć nową sesję konsoli, aby używane były vary.

0

Próbuję tutaj zupełnie innej konfiguracji. Moje aplikacje są uruchamiane w dokerach i mam kontener bardzo podobny do kontenerów uruchomionych podczas produkcji. Aby uruchomić php z xdebug w moim środowisku programistycznym, musiałem ustawić alias z parametrami xdebug i zmienną PHPStorm.

$ alias php=`which php`' \ 
    -d xdebug.idekey=xdbg \ 
    -d xdebug.remote_enable=1 \ 
    -d xdebug.remote_connect_back=1 \ 
    -d xdebug.remote_autostart=1 \ 
    -d xdebug.remote_port=9000 \ 
    -d xdebug.remote_host=172.17.0.1 \ 
    -d xdebug.remote_handler=dbgp' 

$ export PHP_IDE_CONFIG="serverName=localapp.docker" 

Po tej nie pięknej lewy, mógłbym umieścić punkty przerwania na PHPStorm i uruchomić phpunit z linii poleceń.

$ php ../../bin/phpunit --verbose 

Wszystkie powyższe polecenia zostały uruchomione wewnątrz kontenera. Numer localapp.docker jest adresem mojego kontenera i jest zakodowany na stałe na hoście /etc/hosts.

Powiązane problemy