通过PEAR安装PHPUnit

78

我在尝试使用PEAR 1.9.0安装PHPUnit 3.4.6时遇到了问题。在我发现了频道pear.phpunit.de并尝试使用以下命令之一后:

pear install phpunit/PHPUnit

pear install --alldeps phpunit/PHPUnit

pear install --onlyreqdeps phpunit/PHPUnit

它失败了,并给出了以下错误:

没有可用于软件包"pear.phpunit.de/PHPUnit"的版本

安装失败

我发现有很多人遇到相同的问题,但是升级 PEAR 到最新版本通常对他们有用。此外,在 Windows 上安装 PHPUnit 的教程似乎非常少。

编辑:

我还尝试将 prefered_state 更改为 beta;但没有帮助。

我还尝试获取所有可用软件包的列表:

pear remote-list -c phpunit

它给我另一个错误:

无法下载非 HTTP URL "/c/categories.xml"


pear remote-list -c phpunit 的结果是什么? - VolkerK
1
无法下载非HTTP URL“/c/categories.xml”。 - Ondrej Slinták
13个回答

158

我遇到了同样的问题,尝试使用以下方法:

pear clear-cache

113

昨天我也遇到了同样的问题,通过更新channel解决了它。

pear clear-cache
pear update-channels

在尝试安装phpUnit之前。


这解决了我安装phpunit 3.5时遇到的类似问题。谢谢。 - Devon
69
这个单元格中的 pear clear-cache 的想法对我很有用。向你们每个人加一分! - AlienWebguy
1
有人能不能在Stack Overflow的主页上把这个清除缓存的粗体字标出来啊!我已经快用两个小时了,直到看到这个才拯救了我的电脑。谢谢老兄!! - driechel

12
当我输入以下内容时,它会自动安装我:
pear channel-discover pear.phpunit.de
pear install --onlyreqdeps phpunit/PHPUnit

也许版本存在问题,您可以将pear包的preferred_state设置为与stable不同的版本:
pear config-set preferred_state beta

12

请按照以下步骤进行:

  1. pear config-set auto_discover 1
  1. pear install pear.phpunit.de/PHPUnit
  2. -> 这里提示失败了。
  1. 尝试:pear clear-cache -> 成功执行。
  1. pear update-channels -> 成功执行。
  1. pear install pear.phpunit.de/PHPUnit -> 成功执行。

它可以工作了。之前我遇到了一个问题,警告:在C:\xampp\php\pear\PHPUnit\Autoload.php的第69行中,require_once(Symfony/Component/Yaml/autoloader.php)失败,无法打开流:没有这样的文件或目录。使用pear config-set auto_discover 1,我可以安装PHPUnit。非常感谢你。 - channa ly

10

我遇到了同样的问题。这个方法对我有效:

sudo pear clear-cache
sudo pear channel-discover pear.phpunit.de
sudo pear channel-discover pear.symfony-project.com
pear install --alldeps phpunit/PHPUnit

和Ondrej有同样的问题(但没有categories.xml错误),这个方法很有效!非常感谢。 - Duncan

5
完整的错误信息输出是什么?在我使用--alldeps选项并运行pear channel-discover pear.symfony-project.com之前,它一直失败。
sudo pear channel-discover pear.phpunit.de
sudo pear channel-discover pear.symfony-project.com
sudo pear install --alldeps phpunit/PHPUnit

你能否编辑你的原始帖子,附上运行 sudo pear install --alldeps phpunit/PHPUnit 时收到的完整错误信息? - catsby
好的,已编辑原帖。我不会(或者不确定如何)使用“sudo”(我是Windows用户),但我是管理员,所以这应该不是问题。 - Ondrej Slinták

3

2

您需要使用pear channel-discover components.ez.no命令来发现ezcomponents渠道。

总之:

sudo pear channel-discover pear.phpunit.de
sudo pear channel-discover pear.symfony-project.com
sudo pear channel-discover components.ez.no
sudo pear install --alldeps phpunit/PHPUnit

您可以通过在CLI中运行phpunit并查看命令是否被识别来快速进行健全性检查。

更新

看起来他们已经移动了Symfony,我今天刚刚进行了新的安装,这是新通道。

sudo pear channel-discover pear.symfony.com

2
我尝试了。
pear update-channels

正如Davide上面建议的那样,但是这给了我一个错误。
Channel pear.php.net does not support xml-rpc method channel.listAll

由于某种原因,当我运行时它起作用了。

pear channel-update pear.phpunit.de 

1

我也遇到了phpunit安装的问题。建议使用Synaptic软件包管理器来安装PHPUnit。

sudo pear install pear # upgrade pear first

#install php unit with synaptic manager

phpunit --version # get version of phpunit

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接