_Cannot find PHPUnit in include path
_は、phpstormでコードを実行しようとしたときに表示されるエラーメッセージです。
PHP設定、my PHPレベル言語は5.4 (traits, short array syntax, etc.)
で、インタープリターはName(5.4.7)
で、Name
はユーザー定義です。
コードを実行しようとするとエラーが表示されます。正確なメッセージは次のとおりです。
C:\ xampp2\php\php.exe C:\ Users\Dell\AppData\Local\Temp\ide-phpunit.php --no-configuration
C:\ xampp2\htdocs\ft-website
テストは2:34 PM ...
プロセスは終了コード1で終了しました
インクルードパス(。; C:\ xampp2\php\PEAR)にPHPUnitが見つかりません
自分でこの問題に遭遇しました。
インクルードパスでPHPUnitを見つけることができない理由がわかりません(すべて小文字ではありますが、isであるにもかかわらず)。
これを回避するには、PHPUnitのIntelliJ設定(PHP --> PHPUnit
の下)を変更します。 PHPUnit library
設定をUse custom loader
に変更し、phpunit
実行可能ファイルへのパスを指定しました。私のMacでは、それは/usr/local/Cellar/php54/5.4.26/bin/phpunit
でした。
更新:
pear
がphar
という名前のphpunit
としてPHPUnitをインストールすることを発見しました。以前はPHPUnitソースをインストールしていましたが、これはPHPStormでの参照とコード補完に非常に便利でした。これは、PHPアーカイブではなくphp実行可能ファイルを想定しているため、これがPHPStormで動作しなくなった理由だと思います。
そのため、pear
を使用してPHPUnitをインストールするのではなく、代わりに composer を使用しています。これは、PHPUnitをプロジェクトの依存関係として直接バンドルしているため、システム依存関係よりも移植性が高くなります。 vendor/phpunit/phpunit
をPHPインクルードパスをPHPStormの設定に含める)として追加する必要があります。これには2つの目的があります。
phpunit
実行可能ファイルをすぐに見つけることができますPHPUnit
クラスにインデックスを付けますので、オートコンプリートを取得できます。わーい!これを行うには、PhpStorm設定の言語とフレームワークに移動します。 PHPをクリックすると、右側にインクルードパスがあります
Composerを介してPHPUnitを追加した後に、この問題が発生しました。
use custom autoloader
でSettings -> Languages and Frameworks -> PHP -> PHPUnit
を選択し、カスタムオートローダーの場所として/vendor/autoload.phpを追加して、これを修正しました。
Benの答えに加えて、phpStorm 7.1.3では、「カスタムローダーを使用」オプションでphpunit.pharの場所を指定することで機能します。たとえば、
「スクリプトへのパス:/usr/share/php/phpunit.phar」
Vagrantを使用したPHPStorm 2017でも同じ問題が発生しました。最初にSettings -> Languages and Frameworks -> PHP
とリモートインタープリターを追加し、Settings -> Languages and Frameworks -> PHP -> PHPUnit
上部の[+]をクリックして、[by Remote Interpreter
。 Composerオートローダーを使用している場合は、オートローダーファイルへの完全なVagrantパスを入力します。
将来の読者のために、global phpunit.pharへのパスを定義して、PHPStorm + Vagrant + PHPUnitを使用する場合の同じ問題を修正(作曲家ではない)
テストは正常に実行されましたが、コード補完がありませんでした。 phpunit
がローカルマシンのPATHにあることを確認し、確認のために、/usr/local/bin
をPHPにパスを含めるPHP Settings
。コード補完はまだありません。
理由:PHPstormはphpunit
だけでなくphpunit.phar
を探していました。修正するために、ローカルマシンでphpunit
を指すシンボリックリンクphpunit.phar
を確立しました。
$ cd /usr/local/bin/
$ Sudo ln -s phpunit phpunit.phar
その後、プロジェクトのインデックスを再作成し、コード補完が機能し始めました。