我在本地机器上以 root 身份使用 ubuntu 11.10,我已经安装了 xampp 1.7.7,并且我是 ubuntu 的新手,同时遵循 sitepoint 上的教程(http://www.sitepoint.com/getting- started-with-pear/) 关于如何安装 pear 以使用 PhpUnit,当时我没有注意到,但似乎我在 CL 中安装或使用了现有的 php 版本 5.3.6 来做到这一点,pear 安装也是建立在这个版本,在安装xampp的同时,我现在有两个版本的php,xampp的5.3.8和5.3.6,无论如何,我想做的是使用现有的xampp php版本并在其上构建pear,使所有我通过 xampp.so 我的工作是:
- 如何卸载php V5.3.6 及其pear 安装?
- 如何将 CL 与 php 版本链接。xampp 的?
- 如何在 php 版本上构建下一个 pear 安装。xampp 的?
- 我想要我所有的网络开发人员。通过xampp工作,我还需要卸载什么,以避免这种混乱吗?4.
我在 attampet 中执行了以下操作来解决问题:
我在 bash 中写了这个:
gedit ~/.bashrc
我将其添加到 ~/.bashrc 文件的末尾以尝试更改环境路径:
导出路径=/opt/lampp/bin:$PATH 导出路径=/opt/lampp/lib/php:$PATH 导出路径=/opt/lampp/lib/php/PHPUnit/pearcmd.php:$PATH
我使用'php -v'和'pear list'检查了php和pear版本,我得到了一个输出:
PHP 5.3.8 (cli)(构建时间:2011 年 9 月 19 日 13:29:27) 版权所有 (c) 1997-2011 The PHP Group Zend Engine v2.3.0,版权所有 (c) 1998-2011 Zend Technologies
和梨:
Installed packages, channel pear.php.net:
=========================================
Package Version State
Archive_Tar 1.3.9 stable
Console_Getopt 1.3.1 stable
PEAR 1.9.4 stable
PHPUnit 1.3.2 stable
Structures_Graph 1.0.4 stable
XML_Util 1.2.1 stable
当我运行时:'phpunit MessageTest.php':我明白了
PHP 警告:require_once(PHP/CodeCoverage/Filter.php):无法打开流:第 38 行的 /usr/bin/phpunit 中没有此类文件或目录
警告:require_once(PHP/CodeCoverage/Filter.php):无法打开流:第 38 行的 /usr/bin/phpunit 中没有这样的文件或目录 PHP 致命错误:require_once():无法打开所需的 'PHP/CodeCoverage/Filter .php' (include_path='.:/php/includes:/opt/lampp/lib/php:/opt/lampp/bin:/opt/lampp/lib/php/PEAR') 在 /usr/bin/phpunit 上第 38 行
5.我运行了其他问题中报告的以下命令作为该错误的解决方案:
sudo apt-get remove phpunit
sudo pear channel-discover pear.phpunit.de
sudo pear channel-discover pear.symfony-project.com
sudo pear channel-discover components.ez.no
sudo pear update-channels
sudo pear upgrade-all
sudo pear install --alldeps phpunit/PHPUnit
sudo apt-get install phpunit
并将 php.ini 的包含路径更新为:
include_path = ".:/php/includes:/opt/lampp/lib/php:/opt/lampp/bin:/opt/lampp/lib/php/PEAR"
php 文件 MessageTest.php:
<?php
require 'PHPUnit/Autoload.php';
$path = '/opt/lampp/lib/php/PEAR';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
require_once 'PHPUnit/Framework/TestCase.php';
require_once 'Message/Controller/MessageController.php';
class MessageTest extends PHPUnit_Framework_TestCase{
private $message;
public function setUp() {
$this->message = new MessageController();
}
public function tearDown() {
}
public function testRepeat(){
$yell = "Hello, Any One Out There?";
$this->message->repeat($yell); //sending a request
$returnedMessage = $this->message->repeat($yell);//get a response
$this->assertEquals($returnedMessage, $yell);
}
}
?>
我正在尝试测试的 MessageController.php 中的 MessageController 类
<?php
class MessageController {
public function actionHelloWorld() {
echo 'helloWorld';
}
public function repeat($inputString){
return $inputString;
}
}
$msg = new MessageController;
?>
我没有使用任何 PHP 框架,我只是让文件和类听起来就是这样。
我仍然得到同样的错误:
PHP Warning: require_once(PHP/CodeCoverage/Filter.php): failed to open stream: No such file or directory in /usr/bin/phpunit on line
Warning: require_once(PHP/CodeCoverage/Filter.php): failed to open stream: No such file or directory in /usr/bin/phpunit on line 38
PHP Fatal error: require_once(): Failed opening required 'PHP/CodeCoverage/Filter.php' (include_path='.:/php/includes:/opt/lampp/lib/php:/opt/lampp/bin:/opt/lampp/lib/php/PEAR') in /usr/bin/phpunit on line 38
当然,我在这里要求越来越高,我浪费了很多时间并且对此感到非常沮丧,希望你们不要厌倦阅读我的问题,感谢您的帮助
提前致谢, Mohamad elbialy