web-dev-qa-db-ja.com

Xdebugを使用したCodeceptionテストのデバッグ

CodeceptionのApiGuyを使用していくつかのAPIテストを作成しました。ここで、テストのデバッグ用にPhpStorm 7にブレークポイントを設定したいのですが、$ vendor/bin/codecept runの後にデバッグセッションを開始する方法がわかりません。 --debugオプションについては知っていますが、それは私が望んでいるものではありません。

何か考えはありますか?前もって感謝します!

26
Vitaly Chirkov

私は同じ問題に遭遇しました。 Codeceptionには、デバッグできないコマンドツールのみが付属しているようです。私はついに自分のPHPランナーを書くことになりました。これは、基本的にはcodeceptionコマンド実行可能ファイルのライトコピーです。

実際、Linuxで行う必要があるのは、codeceptionツールからShebangを削除して、PHPスクリプトとして実行することだけです。ただし、コマンド以外のコマンドは_codeception run_デバッグの対象になる可能性ははるかに低いので、別のPHPスクリプトを用意しました。これにはrunオプションのみが含まれています。

_<?php
/**
 * Codeception PHP script runner
 */

require_once dirname(__FILE__).'/../vendor/codeception/codeception/autoload.php';

use Symfony\Component\Console\Application;

$app = new Application('Codeception', Codeception\Codecept::VERSION);
$app->add(new Codeception\Command\Run('run'));

$app->run();
_

これが完了したら、PHPStormの他のスクリプトと同じようにデバッグスクリプトを設定できます。したがって、_Select Run/Debug Configuration_> _Edit Configurations..._に移動します。

Edit Configurations...

今度はAdd New Configuration (Alt + Inssert)> _PHP Script_。次に、実行構成に名前を付け、上記で作成したファイルを選択します。 run引数を追加することを忘れないでください。

enter image description here

以上です。これで、IDE内からテストを実行し、通常のスクリプトとしてデバッグできます。

28
Maciej Sz

Codecept.pharファイルを使用していますが、これは機能します。コンソールでこのコマンドを入力してから、コード受容テストを実行するだけです。

export XDEBUG_CONFIG="idekey=session_name remote_Host=localhost profiler_enable=1"
21
user3391306

使用することをお勧めします

php -dxdebug.remote_enable=1 -dxdebug.remote_autostart=On -dxdebug.idekey=YOUR_KEY -dxdebug.remote_Host=YOUR_IP ../vendor/bin/codecept run
5
Dezigo

エイリアスを使用できます

alias xon="export XDEBUG_CONFIG=\"profiler_enable=1\""
alias xoff="export XDEBUG_CONFIG=\"profiler_enable=0\""

そして、コンソールでxonを使用してデバッグを開始し、xoffを使用して終了することができます。

http://theaveragedev.com/debug-cli-scripts-with-phpstorm

2
StalkAlex

別の方法は、上記のようにPhpStormを構成することですが、Fileにはbin/ceptArgumentsにはrun、プロジェクトのルートは次のように設定します。 カスタム作業ディレクトリ

1
Matt Setter

少なくともPHPStormでCodeceptionをデバッグするために、実際には追加のスクリプトは必要ないと思います。他のIDEでもそうなるとは思いません。 Maciej Szの回答に示されている構成で、codecept.pharを「ファイル」として設定し、PHPStorm、Eclipseなどの他のコマンドラインスクリプトと同じように実行できます。

PHPStormで、codecept.pharを「ファイル」として指す新しいPHPスクリプトデバッグ構成を作成します。引数を基本的な実行構成に設定します(例:runacceptance --group mygroup --env myenv)ですが、デバッグするたびに「このページを表示する」ように指示します。その後、実行するテスト/グループ/環境を毎回変更して、ブレークポイントを使用してテストを実行できます。

ポップアップからデバッグボタンをクリックすると、デバッガコンソールで受け入れテストが開始されます。

ブレークポイントに到達する最初の実行は、Codeceptionがコードを実行する前に実行されることを確認しようとする検証フェーズになります。 2回目の実行は、テストで実際にSeleniumまたは構成したものを使用している場合です。これにより、メモリ内にあるものを確認したり、制御された方法で物事をステップオーバーしたりすることができます。

0
cambist