2

1年以上前、私はMicrosoft WebPlatformInstallerを介してPHPをインストールしました。インストールされているPHPのバージョンは5.3.6です。次に、PEAR(バージョン3.5.14)を介してPPHUnitをインストールしました。これを使用して、PHPUnitを最新バージョン(3.6.11)にアップグレードするまで正常に実行されていたNetbeansを介して単体テストを実行しました。その時以来、私はもうユニットテストを実行することができません。

NetbeansオプションのPHPUnit構成を見ると、エラーは報告されず、phpunit.batは正しく認識されています。これはphpunit.batの内容です:

set PHPBIN="C:\Program Files (x86)\PHP\v5.3\php.exe"
%PHPBIN% "C:\Program Files (x86)\PHP\v5.3\phpunit" %*

しかし、単体テストを実行しようとすると、Netbeansの「出力」ウィンドウに次のエラーが表示されます。

Fatal error: Cannot redeclare phpunit_autoload() (previously declared in C:\Program Files (x86)\PHP\v5.3\PEAR\PHPUnit\Autoload.php:51) in C:\Program Files (x86)\PHP\v5.3\PEAR\PHPUnit\Autoload.php on line 205
---
Call Stack:
    0.0003     323984   1. {main}() C:\Program Files (x86)\PHP\v5.3\phpunit:0
    0.0055     731680   2. PHPUnit_TextUI_Command::main() C:\Program Files (x86)\PHP\v5.3\phpunit:46
    0.0055     732096   3. PHPUnit_TextUI_Command->run() C:\Program Files (x86)\PHP\v5.3\PEAR\PHPUnit\TextUI\Command.php:130
    0.0420    1218480   4. PHPUnit_Runner_BaseTestRunner->getTest() C:\Program Files (x86)\PHP\v5.3\PEAR\PHPUnit\TextUI\Command.php:150
    0.0877    1596168   5. ReflectionMethod->invoke() C:\Program Files (x86)\PHP\v5.3\PEAR\PHPUnit\Runner\BaseTestRunner.php:124
    0.0877    1596184   6. NetBeansSuite::suite() C:\Program Files (x86)\PHP\v5.3\PEAR\PHPUnit\Runner\BaseTestRunner.php:124
    0.0893    1600944   7. PHPUnit_Framework_TestSuite->addTestFile() D:\Program Files\NetBeans 7.1\php\phpunit\NetBeansSuite.php:85
    0.0893    1601408   8. PHPUnit_Util_Fileloader::checkAndLoad() C:\Program Files (x86)\PHP\v5.3\PEAR\PHPUnit\Framework\TestSuite.php:358
    0.0898    1601504   9. PHPUnit_Util_Fileloader::load() C:\Program Files (x86)\PHP\v5.3\PEAR\PHPUnit\Util\Fileloader.php:79
    0.1028    1633840  10. include_once('D:\Inetpub\wwwroot\DTS\unit\UploadException.test.php') C:\Program Files (x86)\PHP\v5.3\PEAR\PHPUnit\Util\Fileloader.php:95

$_GETをダンプします


この問題が発生してから、PHPUnitを何度かアンインストールして再インストールしましたが、状況は改善されませんでした。Pear自体も最新バージョン(1.9.4)にアップグレードされます。

誰かがこれらのエラーを取り除く方法を知っていますか?

4

1 に答える 1

1

何らかの理由で、リロードする必要があると考えていますAutoload.phprequireオンライン203を変更しrequire_onceて、役立つかどうかを確認できます。推測を危険にさらす場合、それはあなた自身のコードオートローダーが同じような名前の何かをロードしたいので、PHPUnit自体のオートローダーと競合します。おそらく、クラスの名前空間を設定するか、PHPUnitの前にオートローダーがロードされていることを確認することでうまくいくかもしれません。でもそれはバグだと思います。

于 2012-06-25T20:13:02.900 に答える