今天在学习Yii Framework中单元测试时,总是在运行“phpunit unit/DBTest.php”命令的时候出现以下错误,
但自己是按照文档上说的安装了PHPUnit包了呀,后来发现想起来安装过程中由于家里网络问题其中一个依赖包出错了,但是别的包都提示安装成功了,然后自己是把那个失败的包PHP_CodeCoverage重新安装的,然后运行unit的时候就出现了上面的错误,于是自己慢慢摸索,然后做了以下步骤后,问题总算被解决了。
1. 打开pear的auto_discover选项
$ sudo pear config-set auto_discover 12. 检查已经安装的phpunit和其依赖包
$ sudo pear list -a Installed packages, channel pear.phpunit.de: ============================================ Package Version State DbUnit 1.0.3 stable File_Iterator 1.2.6 stable PHPUnit 3.5.15 stable PHPUnit_MockObject 1.0.9 stable PHPUnit_Selenium 1.0.3 stable PHP_CodeCoverage 1.0.5 stable PHP_Timer 1.0.2 stable PHP_TokenStream 1.0.1 stable Text_Template 1.1.0 stable3. 卸载所有pear.phpunit.de channel下安装的和phpunit相关的包,这里有先后顺序,卸载的时候会有提示
$ sudo pear uninstall PHPUnit $ sudo pear uninstall PHPUnit_MockObject ...4. 重新安装PHPUnit包
$ sudo pear install pear.phpunit.de/PHPUnit5. 再次运行“phpunit unit/DBTest.php”,问题解决。