Symfony 3.3での作業中にPhpStorm IDEを使用して http://symfony.com/doc/current/components/phpunit_bridge.html を設定すると問題が発生しました。
phpunit.phar
をbin
にダウンロードして、代わりに使用することにしました。
Symfony 3.4(およびSymfony 4)には、すぐにphpunit.xml.dist
も含まれていないため、phpunit.phar
を簡単に使用する際に問題があります。
Flexを使用してPHPUnitをインストールしました。
composer req phpunit
これによりphpunit.xml.distが作成され、コマンドラインから次の方法でテストを実行できました。
php bin/phpunit
しかし、再びPhpStormにそれを使用させることはできませんでした。
したがって、phpunit.phar
をダウンロードし、提供されたphpunit.xml.distと連携して動作します。
質問1:PhpStorm IDE phpunit-bridgeを使用する方法はありますか?
質問2:Symfony 4のベストプラクティスは何ですか(phpunit-bridgeまたはVanilla phpunit.phar)?
私が通常やることは、PHPStorm上のphpunitテストフレームワークに秘密の.phpunit
ブリッジによって作成されたディレクトリ、たとえば:
「phar」ファイルの場所は次のとおりです。
bin/.phpunit/phpunit-(major).(minor)/phpunit
または場合によっては:
vendor/bin/.phpunit/phpunit-(major).(minor)/phpunit
この後、指定されたphpunit
実行可能ファイルは、単体テストの実行時に正しく呼び出されますが、--no-configuration
オプション。 Composerがどこにも指定されていないため、オートローダーの問題(多くの「クラスが見つかりません」エラー)が発生する可能性があります。
これを修正するには、phpunit.xml
ファイル(これはとにかく一般的な方法です)では、Composerのオートローダーを次のように指定します。
<phpunit bootstrap="vendor/autoload.php">
この phpunit.xml
を[デフォルトの構成ファイル]オプションで指定する必要があります。これで準備完了です。
Phpunit-bridgeを使用したphpstormについて:カスタムスクリプトとして使用できますが、Niceインターフェイスはなく、PHPStormインターフェイスを介して特定のテストを実行(およびデバッグ)することはできません。
この設定を使用して、symfony/phpunit-bridgeを正常に実行できます。
_composer require --dev symfony/test-pack
_の後、ディレクトリに_/vendor/bin
_ファイルがあります_simple-phpunit
_ファイルは_symfony/phpunit-bridge
_を正常に実行する必要があります。
その後、PhpStormの_File | Settings | Languages & Frameworks | PHP | Test Frameworks
_セットで:
Path to phpunit.phar
_オプションPath to phpunit.phar
_から_simple-phpunit
_ファイルの絶対パス(例__/application/vendor/bin/simple-phpunit
_)Default configuration file:
_を確認し、入力値を_phpunit.xml.dist
_の絶対ローカライズに設定します(私の場合は_/application/phpunit.xml.dist
_)注:_phpunit.xml.dist
_ファイルは_symfony/phpunit-bridge
_を使用するように構成する必要があります- https://symfony.com/doc/current/components/phpunit_bridge.html を確認してください
[適用/ OK]をクリックすると、PhpStormインターフェイスからテストを実行できます。
答えは別として、秘密の.phpunit
ディレクトリが薄っぺらに表示されないことに言及する価値があります。
composer req phpunit
の後、最初にphpunit
スクリプトを実行する必要があります。例:
bin/phpunit
pHPUnitのローカルコピーをダウンロードして同じフォルダーに配置するため、phar実行可能ファイルへのパスは次のようになります。
bin/.phpunit/phpunit-6.5/phpunit