在 OSX 上设置 PHPUnit
Posted
技术标签:
【中文标题】在 OSX 上设置 PHPUnit【英文标题】:Setting up PHPUnit on OSX 【发布时间】:2011-03-19 02:17:18 【问题描述】:虽然我确信其他人最终设法解决了这个问题,但我一直在关注各种文档,并且经历了一段艰难的时光。
http://www.phpunit.de/manual/current/en/installation.html
听起来很简单。但是,根据您的设置,您可能会陷入困境。
例如,PEAR 的版本必须高于 1.8.1。我当时有1.8.0,所以我去了解如何更新PEAR
PEAR upgrade-all
给出一个错误。没有访问权限。
sudo PEAR upgrade-all
工作,但升级用户“sudo”拥有的 PEAR 安装(而不是您的主帐户......或类似的东西,短版本是 5,它根本不起作用)
cd ~
pico .bash_profile
添加
export PATH=/usr/local/bin:$PATH
当你输入 PEAR 时给你正确的 PEAR,你终于准备好安装 PHPUnit 说明的第 1 步了。
pear channel-discover pear.phpunit.de
错误。您无权访问 /usr/local/temp
sudo chmod 777 /usr/local/temp
错误。您无权访问 /usr/local/temp/channel.xml
sudo chmod 777 /usr/local/temp/channel.xml
pear channel-discover pear.phpunit.de
错误。
Registry directory is not writeable by the current user
但我在 MAC 上!
/sigh
/facepalm
/tears
我的机器上实际上有一个 phpunit 的“工作副本”。 (耶!)奇怪的问题是 它仅在我从一个特定文件夹中键入 phpunit 时才有效
cd /usr/local/PEAR
phpunit
^^ 有效
cd ~
phpunit
^^ 返回
Warning: require_once(PHPUnit/Util/Filter.php): failed to open stream: No such file or directory in /usr/local/bin/phpunit on line 46
Fatal error: require_once(): Failed opening required 'PHPUnit/Util/Filter.php' (include_path='.:/usr/lib/php') in /usr/local/bin/phpunit on line 46
如此接近但到目前为止......我想知道是否有人对让这个人正常工作有一些意见?
【问题讨论】:
大多数人应该跳过接受的答案和use Homebrew instead。 自制软件不适用于 mojave ...仅供参考(无法创建符号链接错误) 【参考方案1】:通过终端安装:
curl https://phar.phpunit.de/phpunit.phar -L -o phpunit.phar
chmod +x phpunit.phar
mv phpunit.phar /usr/local/bin/phpunit
【讨论】:
这应该是正确的答案。这是在 mac 上全局安装 phpunit 的最简洁方法。 在 osx 上,您需要创建“local”和“bin”文件夹。你可以用sudo mkdir -p /usr/lcoal/bin
@Jarrod 你是不是打印错了lcoal
?应该是local
?谢谢
@Protocole 嘿,是的,我做到了!应该是local
这应该是正确的答案,但有一件事,不确定我是否是唯一的,但我必须在 curl 命令中添加“-L”以使其遵循重定向,否则我会结束带有 302 html 页面curl https://phar.phpunit.de/phpunit.phar -o phpunit.phar -L
【参考方案2】:
我们可以使用 Homebrew 安装它
$ brew install phpunit
【讨论】:
更准确地说是brew install homebrew/php/phpunit
@PetrPeller 的评论在 2021 年不太准确。Error: homebrew/php was deprecated. This tap is now empty and all its contents were either deleted or migrated.
。但是brew install phpunit
有效【参考方案3】:
通过自制软件(仅当您也通过自制软件安装了 php):
brew tap josegonzalez/php
brew install phpunit
【讨论】:
现在,您无需点击存储库。brew install phpunit
就够了。【参考方案4】:
啊……好吧……我想我现在可能已经开始工作了。
答案在 PHPUnit 文档中。 http://www.phpunit.de/manual/3.4/en/installation.html
After the installation you can find the PHPUnit source files inside your local PEAR directory; the path is usually /usr/lib/php/PHPUnit.
如果我运行“SUDO”用户下列出的所有命令,我运行的 PEAR 的 Mac 版本确实安装了 PHPUnit 例如:
sudo pear channel-discover pear.phpunit.de
sudo pear channel-discover pear.symfony-project.com
sudo pear upgrade-all
此时,所有文件都下载到/usr/local/pear,但命令
phpunit
正在寻找包含来自 /usr/lib/php/PHPUnit 的文件的解决方案?从
复制 PHPUnit 文件夹cp /usr/lib/pear/PHPUnit /usr/lib/php
或
创建符号链接
cd /usr/lib/php
ln -s /usr/lib/pear/PHPUnit PHPUnit
我见过很多人有类似的问题,但这个特殊的解决方案在我见过的任何线程中都没有出现。希望对你有用:) -亚历克斯
【讨论】:
我建议在您的 php.ini 文件中设置 include_path 以在符号链接上添加额外的目录,这更传统一些 - 包括在 OSX 上。为我工作。这也是 PEAR 文档中推荐的内容。【参考方案5】:您可以尝试使用 Composer 进行安装。通过这种方式,您可以隔离当前项目的 PHPUnit 版本,避免在为不同项目使用单个系统范围设置时可能出现的问题。正如 PHPUnit 文档所述 (http://phpunit.de/manual/current/en/installation.html#installation.composer),安装非常简单。
将依赖项添加到您的 composer.json 文件中:
"require-dev":
"phpunit/phpunit": "4.0.*"
然后更新依赖:
composer update
运行 PHPUnit 就可以使用了:
./vendor/bin/phpunit
如果您更改 composer 安装路径,请记住调整此路径,默认为“供应商”。
【讨论】:
选项 --dev 不再需要了,因为现在默认安装了 dev 包。【参考方案6】:安装 PHPUnit
curl https://phar.phpunit.de/phpunit.phar -o phpunit.phar
chmod +x phpunit.phar
mv phpunit.phar /usr/local/bin/phpunit
或者如果你已经安装了 PHPUnit,那么就试试这行通过终端更新 PHPUnit
phpunit --self-update
这将更新您的 phpunit.phar
文件。
【讨论】:
【参考方案7】:-
从https://phar.phpunit.de/phpunit.phar手动下载phpunit
移动到下载的文件夹:
$ cd /to/the/download/directory
将下载的 phpunit 重命名为 phpunit.phar
$ chmod +x phpunit.phar
$ sudo mv phpunit.phar /usr/local/bin/phpunit
【讨论】:
以上是关于在 OSX 上设置 PHPUnit的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 xampp 在 OSX 上正确设置 php_gmp