codecept:命令未找到。

6

我刚安装了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/中没有任何指向codeception的东西。
  • 命令:codecept run unit 返回:codecept: Command not found。
  • 命令:(./)vendor/bin/codecept 返回:“路径”:没有这样的文件或目录。

你的composer.json文件中是否设置了"config": { "bin-dir": "bin"},因为这是codeception用于安装其可执行phar文件的路径。如果没有,请将其添加到composer.json文件中,并更新composer,然后你现在应该能够运行bin/codecept run unit。或者,你尝试的第三个命令应该是./codecept run unit而不是codecept run unit,可以试试看。 - Elias Van Ootegem
谢谢您的建议。我已经通过将其添加到我的composer.json文件中来安装codeception。我尝试了"./codecept run unit",但它也无法工作。这就是我运行"./yii"命令的方式,但在我预安装的系统上,这并不是必要的。 - Wijnand
3个回答

12

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

1
你需要将全局Composer包的二进制文件添加到你的PATH中。
对于本地开发,我使用Vagrant,以下是一个示例:
export PATH=$PATH:/home/vagrant/.composer/vendor/bin

Vagrant似乎是一个有趣的选择!我会研究一下,因为这将防止再次出现这个问题。虽然Composer已经在我的路径中了,因为我可以全局调用它。 - Wijnand
@Wijnand 我实际上是指composer全局包二进制文件。 - arogachev

-1
如果您遇到了这样的错误:
$ 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。 - AmarjaPatil4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接