【问题标题】:Installing PHPUnit w/ XAMPP on Mac OS X在 Mac OS X 上安装 PHPUnit w/ XAMPP
【发布时间】:2011-08-29 04:25:15
【问题描述】:

有谁知道如何在 Mac OS X 上安装 PHPUnit(我正在使用 XAMPP)。我尝试了以下命令,它说安装成功(没有错误)。现在,当我尝试在终端中运行 phpunit 命令时,我收到一个错误,即找不到命令 phpunit。此外,运行“which phpunit”不会返回任何内容。

我运行的命令:

    $sudo /Applications/XAMPP/xamppfiles/bin/pear channel-discover pear.phpunit.de
    $sudo /Applications/XAMPP/xamppfiles/bin/pear channel-discover pear.symfony-project.com
    $sudo /Applications/XAMPP/xamppfiles/bin/pear channel-discover components.ez.no
    $sudo /Applications/XAMPP/xamppfiles/bin/pear install -a phpunit/PHPUnit

谢谢。

【问题讨论】:

  • 挂了?上网工作?小飞贼或其他阻止连接的东西?一切看起来都很好。
  • 顺利通过(互联网出现问题)。它说安装成功,但我无法运行 phpunit 命令(它说找不到 hpunit 命令。另外,运行“which phpunit”什么也不返回。
  • phpunit 未添加到您的路径中,因此操作系统不知道它存在。尝试导航到安装 PHPUnit 的文件夹并从那里运行phpunit

标签: php apache phpunit xampp pear


【解决方案1】:

通过 XAMPP 安装 PHPunit 几乎让我发疯,一个错误告诉我我的 xdebug 版本太旧,无法安装 PHPunit 所需的 Coverage lib,三秒钟后另一个告诉我一切都很好,但没有安装 phpunit 命令.

我选择通过在系统级别(XAMPP 之外)安装 phpunit 来绕过这个问题。

cd /tmp
curl http://pear.php.net/go-pear.phar > go-pear.phar
sudo php -d detect_unicode=0 go-pear.phar

这应该安装梨(并告诉你在哪里,默认在你家)。

cd ~/pear/bin
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 -a phpunit/PHPUnit

./phpunit 现在应该返回一些东西(在我的例子中,它显示了一些未满足的导入。

Warning: require_once(File/Iterator/Autoload.php): failed to open stream: No such file or directory in ~/pear/share/pear/PHPUnit/Autoload.php on line 45

Fatal error: require_once(): Failed opening required 'File/Iterator/Autoload.php' (include_path='.:') in ~/pear/share/pear/PHPUnit/Autoload.php on line 45

如果您没有 /etc/php.ini,请创建它:

sudo cp /etc/php.ini.default /etc/php.ini

然后编辑 /etc/php.ini 并设置正确的路径:

include_path = ".:/php/includes:/Users/YOURUSERNAME/pear/share/pear"

然后在你的 pear bin 目录中调用 ./phpunit 应该可以工作......与 Ubuntu 上的一些 aptitude 和 pear 调用相比,这相当痛苦,但它让你可以在 OSX 上工作。您应该仍然可以将 XAMPP 用作 Web 服务器,但请记住 XAMPP 使用其内置的 PHP 环境,phpunit 将使用您的系统之一。

【讨论】:

    【解决方案2】:

    AsTeR 的方法对我有用,因为被旧的 PHP 5.3.1 当前 PHPUnit 版本卡住会抱怨,因为缺少函数 stream_resolve_include_path

    所以我最终将解决方案与这个答案一起使用:https://stackoverflow.com/a/8249291

    【讨论】:

      【解决方案3】:

      我按照@trent-scott 的做法做了同样的错误。

      Fatal error: require_once(): Failed opening required 'File/Iterator/Autoload.php' (include_path='.:')
      

      您可以注意到有一个空的包含路径 (include_path='.:')..

      转到您的 php.ini 文件。通过在终端 'php --ini' 中执行此操作找出哪个。

      确保您在文件中的某处有类似的内容(一定要替换用户名):

      include_path=".:/Users/hfossli/pear/share/pear"
      

      应该足够了,但我不知为何得到了这个(一定要替换用户名):

      include_path=".:/Applications/XAMPP/xamppfiles/lib/php/pear:/Applications/XAMPP/xamppfiles/lib/php/pear:/Users/hfossli/pear/share/pear"
      

      【讨论】:

        【解决方案4】:

        我资助了另一个对我有用的临时解决方案。不要直接在 Xampp 应用程序中使用 pear 命令,而是尝试使用 pear 可执行文件的完整路径,例如:/Applications/XAMPP/xamppfiles/bin/pear

        希望对您有所帮助。

        【讨论】:

          猜你喜欢
          • 2014-09-19
          • 2016-07-06
          • 2012-01-09
          • 2011-12-23
          • 2013-11-08
          • 2010-10-12
          • 2012-03-18
          • 2011-07-28
          • 2017-01-16
          相关资源
          最近更新 更多