2017-10-19 151 views
1

我正在使用Laravel。每当我需要运行测试,我必须执行在以下目录中的PHPUnit:
如何创建PHPUnit的符号链接?

vendor/phpunit/phpunit/phpunit 

如何创建一个符号链接,以上面的文件,这样我就不必在完整路径PHPUnit的输入每次 ?

我尝试下面的命令,但没有工作:

ln -s vendor/phpunit/phpunit/phpunit mysym 

出于某种原因,它说:“找不到命令”当我试图执行的符号链接。

回答

2

如何创建一个符号链接到上面的文件,以便我不必每次输入完整路径到phpunit?

你不做任何符号链接。相反,您需要将该路径添加到您的变量$PATH。另外,您应该使用vendor/bin文件夹,而不是直接使用包的文件夹。

因此,在你的壳呢:

$ export PATH=$PATH:/home/you/project/vendor/bin/ 

您可以添加到您的.bashrc为好。

+0

嗨马尔辛,感谢您的答案。请注意,从我的/ var/www文件夹运行phpunit将执行另一个phpunit二进制文件,该文件与laravel不起作用。我试图添加供应商/斌/ phpunit文件夹PATH变量,但没有帮助。我尝试清除我通过apt-get安装的phpunit(不工作的应该做的那个),但是现在当我从www文件夹运行phpunit时,它说虽然运行完整路径但没有安装phpunit。或者需要服务器重新启动才能使路径变量生效?谢谢 –

+1

您好Marcin,感谢您的答案。这只是由于路径变量中的错字。 –

0

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。