3

我正在迁移到同时从雪豹到狮子的新计算机。phpunit 似乎没有进行迁移,所以我重新安装了它。然而,梨的标准安装似乎不适用于我的家庭 brew 安装 php。这是错误:

phpunit
PHP警告:需要(/usr/lib/php/PHPUnit/Autoload.php):无法打开流:第43行的/usr/bin/phpunit中没有这样的文件或目录

警告:需要(/usr/lib/php/PHPUnit/Autoload.php):无法打开流:第 43 行的 /usr/bin/phpunit 中没有此类文件或目录
PHP 致命错误:require(): 无法打开所需的 '/usr/lib/php/PHPUnit/Autoload.php' (include_path='.:/Users/bimemployee/pear/share/pear:/usr/lib/php')在第 43 行的 /usr/bin/phpunit 中

致命错误:require(): 无法打开所需的 '/usr/lib/php/PHPUnit/Autoload.php' (include_path='.:/Users/bimemployee/pear/share/pear:/usr/lib/php') /usr/bin/phpunit 在第 43 行

我有我的计算机设置,我的主 /etc/php.ini 文件作为 /usr/local/etc/php.ini 的 home brew php.ini 文件的符号链接,其中包含我的包含路径,它似乎正在工作。

php -r 'foreach (explode(":", get_include_path()) as $path) echo $path 。PHP_EOL;'
未启用日志处理 - 打开 stderr 日志记录
找不到模块(LM-SENSORS-MIB):在第 0 行(无)
.
/Users/bimemployee/pear/share/pear
/usr/lib/php

我还通过 .bash_profile 文件设置 php 以使用自制版本。

导出 PATH="$(brew --prefix)/bin:$PATH"
哪个php
/usr/local/bin/php
哪个phpunit
/usr/bin/phpunit

谢谢你的帮助。

-科里

4

3 回答 3

6

也许您没有最新版本或完整的 phpunit 安装。您需要使用安装所有依赖--alldeps 项所以您应该像这样安装 phpunit:

pear channel-discover pear.symfony.com # for Yaml dependency
pear channel-discover pear.phpunit.de
pear install --alldeps phpunit/PHPUnit

这对我有用;)

于 2012-11-15T11:34:58.120 回答
2

您遇到的问题可能与您的include_path实际(真实)php lib 目录和brew link命令有关。

Brew 将 php lib 安装到Cellar目录中,然后将 ( brew link) 所有现有资源链接到/usr/local/lib/php(或/usr/lib/php- 取决于您的安装)。

在链接过程之后(可能在 pear 更新/升级之后)File.php,问题File/出现在Cellar php lib 中。这意味着它不会被链接到/usr/local/lib/php. 要修复它,您可以一次brew unlink又一次地解决它brew link

此外,最好将您的 pear php_dir 设置为/usr/local/lib/php. 这样,所有新的 pear 模块都将安装在正确的目标位置,而无需链接过程。这很好地分离了自定义 Pear 模块和 PHP lib 本身。

于 2012-08-31T08:54:30.800 回答
1

您需要在 php.ini 中设置您的 php 包含路径,以便它包含 PHPUnit 所在的 PEAR 目录。

include_path = ".:/Applications/MAMP/bin/php/php5.3.6/lib/php:"

您可能需要使用 Spotlight 搜索 Autoload.php 以找到正确的位置。

于 2012-06-20T15:33:51.237 回答