如何创建PHPUnit的符号链接?
问题描述:
我正在使用Laravel。每当我需要运行测试,我必须执行在以下目录中的PHPUnit:
如何创建PHPUnit的符号链接?
vendor/phpunit/phpunit/phpunit
如何创建一个符号链接,以上面的文件,这样我就不必在完整路径PHPUnit的输入每次 ?
我尝试下面的命令,但没有工作:
ln -s vendor/phpunit/phpunit/phpunit mysym
出于某种原因,它说:“找不到命令”当我试图执行的符号链接。
答
如何创建一个符号链接到上面的文件,以便我不必每次输入完整路径到phpunit?
你不做任何符号链接。相反,您需要将该路径添加到您的变量$PATH
。另外,您应该使用vendor/bin
文件夹,而不是直接使用包的文件夹。
因此,在你的壳呢:
$ export PATH=$PATH:/home/you/project/vendor/bin/
您可以添加到您的.bashrc
为好。
答
composer.json有一个选项来设置使命令文件放置:
"bin-dir": "vendor/bin",
它可以设置为只是“斌” - 所以它,由作曲家包括其他可运行文件将在那里,例如bin/phpunit
。
参见:https://getcomposer.org/doc/articles/vendor-binaries.md
还有另一个可用的选项 - 在composer scripts,它也被用来运行“安装后,CMD” &“更新后的CMD”,但你可以把你自己命令在那里。
"scripts": {
"test": "phpunit -v --debug",
"behat": "behat",
"post-install-cmd": [
... rest of composer.json
在这里,如果我键入composer test
,它将使用给定的命令行运行PHPunit。
嗨马尔辛,感谢您的答案。请注意,从我的/ var/www文件夹运行phpunit将执行另一个phpunit二进制文件,该文件与laravel不起作用。我试图添加供应商/斌/ phpunit文件夹PATH变量,但没有帮助。我尝试清除我通过apt-get安装的phpunit(不工作的应该做的那个),但是现在当我从www文件夹运行phpunit时,它说虽然运行完整路径但没有安装phpunit。或者需要服务器重新启动才能使路径变量生效?谢谢 –
您好Marcin,感谢您的答案。这只是由于路径变量中的错字。 –