2

ファイルをインクルードしようとすると、PHPUnit からエラー メッセージが表示されます。たとえば、次のコードではエラーが発生します。

<?php

include_once "PHPUnit/Autoload.php";
require_once "controller/ProductController.php";

class SecurityTests extends PHPUnit_Framework_TestCase
{
    public function testSmth() {
        $this->assertTrue(1==1);
    }
}

?>

しかし、4 行目 ( ) を削除するとrequire_once "controller/ProductController.php";、問題なく動作します。

私が得るエラーは次のとおりです。

Warning: require_once(PHPUnit/Framework/Error.php): failed to open stream: No such file or directory in E:\wamp\bin\php\php5.4.3\pear\PHPUnit\Util\ErrorHandler.php on line 48

編集: php.ini ファイルの include_path は次のとおりです。

include_path = ".;E:\wamp\bin\php\php5.4.3\pear\;E:\wamp\www\renting\"

奇妙なこと:

<?php
echo get_include_path(); **// Will echo .;E:\wamp\bin\php\php5.4.3\pear\;E:\wamp\www\renting\** 
require_once 'PHPUnit/Autoload.php';
require_once 'controller/AccountController.php';
echo get_include_path(); **// Will echo E:/wamp/www/renting/**

また:

<?php

require_once 'controller/AccountController.php';
echo get_include_path(); **// Will echo E:/wamp/www/renting/**
require_once 'PHPUnit/Autoload.php';

echo get_include_path(); **// Will not even echo.**

これは私にとって非常に奇妙です。

何か案は?

4

3 に答える 3

1

その既知の問題。

パッケージの下にインストールされている PHUnit を確認します。

pear channel-discover pear.phpunit.de
pear channel-discover components.ez.no
pear インストール phpunit/PHP_CodeCoverage

権限がない場合は、sudoを試してください。

あなたを助けるいくつかのリンク:

https://bugs.launchpad.net/ubuntu/+source/phpunit/+bug/701544

phpunit の実行時に致命的なエラー 'File/Iterator/Autoload.php' が見つかりません

phpunitのrequire_once()エラー

于 2013-03-04T07:57:06.233 に答える
0

わかりました、これを理解するのに何日もかかりました。私が行ったことを誰も経験しないことを願っています。

私はphp.iniに持っていました:

include_path = ".;E:\wamp\bin\php\php5.4.3\pear\;E:\wamp\www\renting\"

しかし、以前はiniファイルで複数のphpインクルードパスを使用していなかったので、使用していました

set_include_path("E:/wamp/www/renting/");

一部のファイルでは、それらが私が含めようとしていたものではなかったとしても.

とにかく、ばかげて紛らわしいように聞こえるかもしれませんが、何らかの理由で PHPUnit が適切にロードされない状況に陥った場合は、コードがインクルード パスを何らかの方法で変更する可能性を考えてください。

于 2013-03-09T02:38:06.303 に答える