7

PhpStorm の Symfony プロジェクト内で phpunit を動作させるのに問題があります - phpunit -c appOSX ターミナルでは正常に動作します。

エラーは次のとおりです。

Unable to attach test reporter to test framework of test framework quit unexpectedly
/Applications/MAMP/bin/php/php5.4.4/bin/php/private/var/folders/4l/hw8g4qlj6nnc37lfkc6hcj7w0000gn/T/ide-phpunit.php --bootstrap
/Users/greg/Repos/MyApp/app/bootstrap.php.cache --configuration    
/Users/greg/Repos/MyApp/app/phpunit.xml.dist
MyApp\MyBundle\Tests\Controller\MyControllerTest 
/Users/greg/Repos/MyApp/src/HvH/MyBundle/Tests/Controller/MyControllerTest.php

Testing started at 11:45 AM ...

Process finished with exit code 255

編集: PHP ログからのエラーは次のとおりです。

Fatal error: Uncaught exception 'InvalidArgumentException' with message 'The "app/" directory does not exist.' in /Users/greg/Repos/MyApp/vendor/symfony/symfony/src/Symfony/Component/Finder/Finder.php:650
4

4 に答える 4

7

私は同じ問題に遭遇し、ドキュメントで次の解決策を見つけました: http://symfony.com/doc/current/book/testing.html#your-first-functional-test

機能テストを実行するために、WebTestCase クラスはアプリケーションのカーネルをブートストラップします。ほとんどの場合、これは自動的に行われます。ただし、カーネルが非標準のディレクトリにある場合は、phpunit.xml.dist ファイルを変更して、KERNEL_DIR 環境変数をカーネルのディレクトリに設定する必要があります。

<phpunit>
    <!-- ... -->
    <php>
        <server name="KERNEL_DIR" value="/path/to/your/app/" />
    </php>
    <!-- ... -->
</phpunit>

したがって、phpunit.xml.dist 構成ファイルを確認し、絶対パスを app-directory に追加してみてください。

それが役に立てば幸い。

于 2013-10-11T15:50:07.053 に答える
2

PhpStorm は常にプロジェクト ルートからテスト ランナーをインスタンス化するとは限りません。これを修正するには、実行 / デバッグ構成の「カスタム作業ディレクトリ」の下にプロジェクト ルートへの絶対パスを追加します。これにより、アプリへの絶対パスを phpunit.xml.dist 構成に追加する必要がなくなります。また、相対パス ファイル インクルード (JSON テスト データなど) を確実に見つけることができます。

于 2014-02-04T17:21:31.820 に答える
2

動作させる手順 (PHPStorm 8.0.1 でテスト):

1) Preferences > PHP > PHPUnit デフォルト設定ファイルまたはデフォルト ブートストラップ ファイルに何も設定されていないことを確認します。

2) サブセクションでカスタム PHPUnit 構成を作成 Run > Edit Configurations > し、次の Command Line ことを確認します。

a) に設定 Custom working directory: します /absolute/path/to/vendor

b) 「別の構成ファイルを使用する:」にチェックを入れ、次のように設定します。 /absolute/path/to/vendor/your_app/(sub_app_if_applicable)/phpunit.xml.dist

次に、クラスとファイルを指定してスイート内の任意のテスト クラスを実行するか、[構成ファイルで定義] をオンにして構成に従ってすべてのテスト クラスを実行できます。

于 2014-11-27T02:52:27.797 に答える