web-dev-qa-db-ja.com

sympony / phpunit-bridgeを使用するようにPhpStormを設定する方法

Symfony 3.3での作業中にPhpStorm IDEを使用して http://symfony.com/doc/current/components/phpunit_bridge.html を設定すると問題が発生しました。

phpunit.pharbinにダウンロードして、代わりに使用することにしました。

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)?

24
my-nick

私が通常やることは、PHPStorm上のphpunitテストフレームワークに秘密の.phpunitブリッジによって作成されたディレクトリ、たとえば: enter image description here

「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インターフェイスを介して特定のテストを実行(およびデバッグ)することはできません。

50
Renato Mefi

この設定を使用して、symfony/phpunit-bridgeを正常に実行できます。

  • PhpStorm 2018.2.5
  • Symfony 4.1.x
  • Dockerで実行されているPHP 7.1
  • 「symfony/test-pack」:「^ 1.0」

手順:

_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_)

phpstorm phpunit settings

注:_phpunit.xml.dist_ファイルは_symfony/phpunit-bridge_を使用するように構成する必要があります- https://symfony.com/doc/current/components/phpunit_bridge.html を確認してください

[適用/ OK]をクリックすると、PhpStormインターフェイスからテストを実行できます。

14
grexlort

答えは別として、秘密の.phpunitディレクトリが薄っぺらに表示されないことに言及する価値があります。

composer req phpunitの後、最初にphpunitスクリプトを実行する必要があります。例:

bin/phpunit

pHPUnitのローカルコピーをダウンロードして同じフォルダーに配置するため、phar実行可能ファイルへのパスは次のようになります。

bin/.phpunit/phpunit-6.5/phpunit
1
emix