我正在使用Laravel。每当我需要运行测试时,我必须在以下目录中执行PHPUnit:
vendor/phpunit/phpunit/phpunit
如何创建上面文件的符号链接,以便我不必每次都输入phpunit的完整路径?
我尝试了以下命令,但没有工作:
ln -s vendor/phpunit/phpunit/phpunit mysym
出于某种原因,当我尝试执行符号链接时,它会显示“未找到命令”。
答案 0 :(得分:2)
如何创建上面文件的符号链接,以便我不必每次都输入phpunit的完整路径?
你不做任何符号链接。相反,您需要将该路径添加到$PATH
变量中。此外,您应该使用vendor/bin
文件夹,而不是直接使用包的文件夹。
所以在你的shell中执行:
$ export PATH=$PATH:/home/you/project/vendor/bin/
您也可以将其添加到.bashrc
。
答案 1 :(得分:1)
composer.json可以选择设置命令文件的放置位置:
"bin-dir": "vendor/bin",
它可以设置为“bin” - 所以它和Composer包含的其他可运行文件就在那里,例如bin/phpunit
。
请参阅:https://getcomposer.org/doc/articles/vendor-binaries.md
还有另一种选择 - composer scripts,它也用于运行“post-install-cmd”& “post-update-cmd”,但您可以将自己的命令放在那里。
"scripts": {
"test": "phpunit -v --debug",
"behat": "behat",
"post-install-cmd": [
... rest of composer.json
在这里,如果我输入composer test
,它将使用给定的命令行运行PHPunit。