Phpunit Pathの問題に対処する
-
28-09-2020 - |
質問
現在のMVCフレームワークアプリケーションの中からPHPUnitを実行しようとすると、次のエラーが発生します。
Fatal error: Cannot redeclare class PHPUnit_Util_FilterIterator in /usr/local/pear/PHPUnit/Util/FilterIterator.php on line 162
.
私はその誤りをいくつかのものの組み合わせに追跡することができました。
$paths = array();
$paths[] = '../m';
$paths[] = '../v';
$paths[] = '../c';
$paths[] = '/usr/local/pear';
set_include_path(implode(PATH_SEPARATOR, $paths));
.
コメントしたとき
set_include_path(implode(PATH_SEPARATOR, $paths));
.
PHPUnitはテストを実行します
コメントしたとき
$paths[] = '/usr/local/pear';
.
私は
を手に入れますFatal error: require_once(): Failed opening required 'PHPUnit/Framework/TestCase.php'
.
他のすべてのディレクトリをコメントした場合は、
を保存します$paths[] = '/usr/local/pear';
.
エラーが発生しません。
実際のテストを実行することができる唯一の方法は、set_include_pathステートメントなしで実行され、個々の単体テストによって呼び出されるすべてのクラスファイルを手動で含めている場合。
任意のアイデア?
編集: __autoload関数と矛盾があるようです。私はまだ問題に対処する方法はまったくありません。
解決
それが判明したのと同じように、私はそれが実際にうまく機能するのを理解していません...しかしそれはそうするので、結果を投稿します。
$paths[] = get_include_path();
$paths[] = '../m';
$paths[] = '../v';
$paths[] = '../c';
set_include_path(implode(PATH_SEPARATOR, $paths));
.
そこに行きます。少なくとも、あなたが実際にこの問題を抱えている場合には、次のようにしてください。)
所属していません StackOverflow