1

PHPUnit を使用して Symfony 2 アプリケーションをテストしたいと考えています。ドキュメントで説明されているように、 PHPUnit を Symfony 2 プロジェクトcomposer.jsonファイルに追加しました。

"require": {
        ...
        "phpunit/phpunit": "3.7.*"
    },

PHPUnit を呼び出してテストを実行するにはどうすればよいですか? 経由で実行しようとしました

$ php /path/to/symfony2app/vendor/phpunit/phpunit.php

しかし、次のエラーメッセージが表示されます。

Warning: require_once(File/Iterator/Autoload.php): failed to open stream: No such file or directory in C:\...\vendor\phpunit\phpunit\PHPUnit\Autoload.php on line 45

Fatal error: require_once(): Failed opening required 'File/Iterator/Autoload.php' (include_path='.;\...\xampp\php\PEAR') in C:\...\vendor\phpunit\phpunit\PHPUnit\Autoload.php on line 45

PEAR が見つからないことが問題だと思いますが、PEAR は PHPUnit の依存関係であり、経由でインストールされるべきではありませんcomposer updateか?

4

1 に答える 1

8

Composer は、いわゆる「bin-dir」内にインストールするパッケージのバイナリ (実行可能スクリプト) への参照を作成します。デフォルトでは、 にあるvendor/bin/ため、次のように実行しますphp vendor/bin/phpunit。通常は呼び出すことvendor/bin/phpunitもできますが、php で実行することを知っている必要があります。

Cygwin では、.bat ファイルを .bat ファイルとして直接呼び出す必要がある場合がありますvendor/bin/phpunit.bat

これをよりアクセスしやすくしたい場合は、これを composer.json に追加できます。

    "config": { 
        "bin-dir": "bin"
    }

bin/phpunitその後、ファイルはプロジェクト内だけでアクセスできるようになり、少し短くなり、隠れにくくなります。

これは実際には cygwin 固有のものではないことに注意してください。通常の Windows コマンドやネイティブの UNIX 環境でも問題なく動作するはずです。

于 2013-01-05T17:53:02.110 に答える