【问题标题】:Can't run PHPUnit as it says "PHPUnit requires PHP 5.6", but I have 4.2 installed无法运行 PHPUnit,因为它说“PHPUnit 需要 PHP 5.6”,但我安装了 4.2
【发布时间】:2016-01-29 04:26:06
【问题描述】:

我已经坚持了大约 4 小时。我正在尝试对我的 Laravel 5 项目进行一些测试。当我最后一次运行它们时,它们工作了一个月左右,但我想再次运行它们。仅供参考,我正在使用 Vagrant。

这是我的 composer.json 文件中的一个 sn-p。

"require": {
    "laravel/framework": "5.0.*",
    "illuminate/html": "^5.0",
    "doctrine/dbal": "~2.5",
    "maatwebsite/excel": "~2.0.0",
    "zizaco/entrust": "dev-laravel-5",
    "kalnoy/nestedset": "^3.0"
},
"require-dev": {
    "phpunit/phpunit": "4.2.*",
    "phpspec/phpspec": "~2.1"
},

但是每当我通过终端运行 phpunit 时,它都会声明

此版本的 PHPUnit 需要 PHP 5.6;强烈建议使用最新版本的 PHP。

我已经尝试了以下方法 - 都是通过 Google 和 Stack Overflow 找到的。

  • composer clear-cache 命令
  • 重新加载 vagrant
  • 更改版本(4.0、~4.0、4.8、4.1.*)
  • "cache-files-ttl": 0 添加到我的 composer.json 中

在下面输入都返回关于 PHP 5.6 的相同错误消息

  • phpunit --check-version
  • phpunit --self-update
  • phpunit

为了它的价值,/vendor/phpunit/composer.json 显示

"require": {
    "php": ">=5.3.3",
    ...
}
...
"extra": {
    "branch-alias": {
        "dev-master": "4.2.x-dev"
    }
},

此外,调用 php -v 会显示“PHP 5.4.45 (cli)(构建时间:2015 年 9 月 4 日 15:40:44)”。 phpinfo() 显示相同的内容。

有什么想法吗?

【问题讨论】:

  • 假设您使用的是 Linux 或 Mac,请尝试运行 which phpunit。您可能有不止一个副本在弹跳。
  • 啊,是的,抱歉 - 正在运行 mac。 which phpunit 返回 "/usr/bin/phpunit"... 啊——这就是它找不到我的 /vendor/phpunit 的原因!?
  • 好的,看来我可以通过 "./vendor/phpunit/phpunit/phpunit" 执行供应商版本。感谢@EdCottrell 的提示

标签: php laravel phpunit vagrant composer-php


【解决方案1】:

您的系统上有多个 phpunit 副本。在终端中运行这个命令会告诉你哪一个在你的路径中:

which phpunit

正如您上面的 cmets 所确认的,您没有使用项目文件夹中的那个,因此您需要使用 phpunit 启动 phpunit

./vendor/phpunit/phpunit/phpunit [rest of command]

或创建指向该副本的符号链接。

【讨论】:

    猜你喜欢
    • 2018-10-09
    • 1970-01-01
    • 2017-08-07
    • 2013-09-01
    • 2014-10-22
    • 2017-11-10
    • 2014-06-03
    • 2014-01-08
    • 1970-01-01
    相关资源
    最近更新 更多