PHPStorm で、PHPUnit クラスをデバッグしたいと考えています。単体テスト クラス (から継承するクラス) のメソッドにブレークポイントを設定するとPHPUnit_Framework_TestCase
、テストを実行するたびに、PHPStorm はテストを実行しますが、ブレークポイントで停止することはありません。停止していました。
それは PHPStorm のバグですか? のメソッドで停止するPHPUnit_Framework_TestCase
方法は?
PHPStorm がテスト内のブレークポイントで停止するには、構成を「デバッグ」(Shift + F9) する必要がありますが、「実行」(Shift + F10) する必要はありません。
テスト ケースに @runInSeparateProcess コメントがある場合、または phpuint.xml 構成ファイルに<phpunit processIsolation="true">
タグに processIsolation 属性があり、その値が true の場合、デバッガーは別のスレッドで実行されているため、ブレークポイントで停止しません。
ブレークポイントを配置したファイルが実際に実行されるファイルであることを再確認してください。複数のバージョンの PHPUnit がインストールされている場合があります。
または、独自の tests フォルダー内の Testcase をオーバーライドして、そこから拡張します。そこにブレークポイントを配置するのと同じ名前とパラメーターを持つ関数を作成します。次に、親への呼び出しを配線します。
class My_TestCase extends PHPUnit_Framework_TestCase
{
public function funcToTest($param) {
return parent::funcToTest($param);
}
}
次に、代わりにそのテストケース クラスからテストを拡張し、そこにブレークポイントを配置します。ヒットすると、さらに深く掘り下げて、phpunit のどの具体的なファイルが使用され、ディスク上のどこに配置されているかを実際に確認できます。