【问题标题】:codecept: command not foundcodecept:找不到命令
【发布时间】:2015-05-23 13:42:39
【问题描述】:

我全新安装了 Ubuntu,在安装 Yii2 等之后,我似乎无法再运行 codecept。

我正在使用 Yii2。我需要 composer.json 中最新的 codecept 版本,它工作正常。但我似乎无法找到让 codeception 再次运行的方法。

我一直在浏览所有指南,但除了 composer require 或将其添加到 composer.json 之外,它们都没有其他任何东西。我确实注意到,当我想将 codecept 添加到我的 $PATH 时,我在 root/vendor/bin/ 中没有 codecept 文件,我认为 $PATH 条目应该指向的位置。

我不知道从这里去哪里。我可能在某个地方错过了一些步骤吗? 总结一下:

  • codeception (yiisoft/yii2-codeception) 已安装。
  • root/vendor/bin/ 不包含任何指向代码接收的内容。
  • 命令:codecept 运行单元返回:codecept:找不到命令
  • command: (./)vendor/bin/codecept return: "path": no such file or directory.

【问题讨论】:

  • 你是否在 composer.json 文件中设置了"config": { "bin-dir": "bin"},因为这是 codeception 用来安装其可执行 phar 文件的路径,如果没有,请将其添加到 composer.json 文件中,然后更新composer,你现在应该可以运行bin/codecept run unit了。或者,您尝试的第三个命令应该是 ./codecept run unit,而不是 codecept run unit,也许可以试一试。
  • 感谢您的建议。我已经通过将它添加到我的 composer.json 来安装 codeception。我试过 ./codecept 运行单元也不起作用。这就是我运行 ./yii 命令的方式,但在我预先安装的系统上不是必需的。

标签: php composer-php yii2 codeception


【解决方案1】:

codecept: command not found 在 Ubuntu 上,那么您应该按照以下步骤操作:

sudo composer global require "codeception/codeception=2.1.*" "codeception/specify=*" "codeception/verify=*"

然后运行这个命令:

sudo ln -s ~/.composer/vendor/bin/codecept    /usr/local/bin/codecept

所以codecept buildcodecept run 可以工作。


如果您使用的是 Windows,请运行以下命令:
composer global require "codeception/codeception=2.1.*" "codeception/specify=*" "codeception/verify=*"

将此行添加到您的路径中:

~\AppData\Roaming\Composer\vendor\bin

【讨论】:

    【解决方案2】:

    您应该将 composer 全局包二进制文件添加到您的 PATH。

    对于本地开发,我使用 Vagrant,以下是它的示例:

    export PATH=$PATH:/home/vagrant/.composer/vendor/bin
    

    【讨论】:

    • Vagrant 似乎是一个有趣的选择!将对此进行调查,因为这将防止再次出现此问题。尽管作曲家已经在我的道路上,因为我可以在全球范围内调用它。
    • @Wijnand 我实际上是指作曲家全局包二进制文件。
    【解决方案3】:

    如果你有类似这样的错误:

    $ php ./vendor/bin/codecept run
    Could not open input file: ./vendor/bin/codecept
    

    只要运行:

    $ rm composer.lock 
    $ composer update
    

    【讨论】:

    • 使用 composer update 将更新可能与您的代码不兼容的包,因此您可能会遇到问题。尚未测试这是否有效,但可以尝试使用 rm composer.lock 然后 composer install 而不是 composer update
    猜你喜欢
    • 1970-01-01
    • 2021-02-10
    • 1970-01-01
    相关资源
    最近更新 更多