CodeceptionのApiGuyを使用していくつかのAPIテストを作成しました。ここで、テストのデバッグ用にPhpStorm 7にブレークポイントを設定したいのですが、$ vendor/bin/codecept run
の後にデバッグセッションを開始する方法がわかりません。 --debug
オプションについては知っていますが、それは私が望んでいるものではありません。
何か考えはありますか?前もって感謝します!
私は同じ問題に遭遇しました。 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...
_に移動します。
今度はAdd New Configuration (Alt + Inssert)
> _PHP Script
_。次に、実行構成に名前を付け、上記で作成したファイルを選択します。 run
引数を追加することを忘れないでください。
以上です。これで、IDE内からテストを実行し、通常のスクリプトとしてデバッグできます。
Codecept.pharファイルを使用していますが、これは機能します。コンソールでこのコマンドを入力してから、コード受容テストを実行するだけです。
export XDEBUG_CONFIG="idekey=session_name remote_Host=localhost profiler_enable=1"
使用することをお勧めします
php -dxdebug.remote_enable=1 -dxdebug.remote_autostart=On -dxdebug.idekey=YOUR_KEY -dxdebug.remote_Host=YOUR_IP ../vendor/bin/codecept run
エイリアスを使用できます
alias xon="export XDEBUG_CONFIG=\"profiler_enable=1\""
alias xoff="export XDEBUG_CONFIG=\"profiler_enable=0\""
そして、コンソールでxon
を使用してデバッグを開始し、xoff
を使用して終了することができます。
別の方法は、上記のようにPhpStormを構成することですが、Fileにはbin/cept
、Argumentsにはrun
、プロジェクトのルートは次のように設定します。 カスタム作業ディレクトリ。
少なくともPHPStormでCodeceptionをデバッグするために、実際には追加のスクリプトは必要ないと思います。他のIDEでもそうなるとは思いません。 Maciej Szの回答に示されている構成で、codecept.pharを「ファイル」として設定し、PHPStorm、Eclipseなどの他のコマンドラインスクリプトと同じように実行できます。
PHPStormで、codecept.pharを「ファイル」として指す新しいPHPスクリプトデバッグ構成を作成します。引数を基本的な実行構成に設定します(例:runacceptance --group mygroup --env myenv)ですが、デバッグするたびに「このページを表示する」ように指示します。その後、実行するテスト/グループ/環境を毎回変更して、ブレークポイントを使用してテストを実行できます。
ポップアップからデバッグボタンをクリックすると、デバッガコンソールで受け入れテストが開始されます。
ブレークポイントに到達する最初の実行は、Codeceptionがコードを実行する前に実行されることを確認しようとする検証フェーズになります。 2回目の実行は、テストで実際にSeleniumまたは構成したものを使用している場合です。これにより、メモリ内にあるものを確認したり、制御された方法で物事をステップオーバーしたりすることができます。