2017-10-19 171 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。