2017-10-19 9 views
1

저는 Laravel을 사용하고 있습니다. 내가 테스트를 실행해야 할 때마다 나는 다음 디렉토리에서 phpunit을 실행해야합니다 :
PHPUnit에 대한 심볼릭 링크를 만드는 방법은 무엇입니까?

내가 phpunit을의 전체 경로를 입력 할 필요가 없습니다 위 그래서 내가 파일에 심볼릭 링크를 만드는 방법을
vendor/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

안녕하세요 Marcin, 답변 해 주셔서 감사합니다. 내/var/www 폴더에서 phpunit을 실행하면 laravel에서 작동하지 않는 또 다른 phpunit 바이너리가 실행됩니다. 나는 PATH 변수에 vendor/bin/phpunit 폴더를 추가하려고했지만 didnt 도움을 주었다. 나는 apt-get을 통해 설치 한 phpunit을 지우려고했으나 현재는 www가있는 폴더에서 phpunit을 실행할 때 phpunit은 설치되어 있지 않지만 전체 경로가 작동합니다. 또는 path 변수를 적용하려면 서버를 재부팅해야합니까? 감사합니다 –

+1

안녕하세요 Marcin, 답변 주셔서 감사합니다. 그것은 path 변수에 오타가 있기 때문입니다. –

0

composer.json 명령 파일이 배치 설정하는 옵션이 있습니다 :

"bin-dir": "vendor/bin", 
이 설정할 수 있습니다

그냥 "빈"에 - 그리고 그것은, 그리고 작곡가에 의해 포함 된 다른 실행 가능한 파일을 것 있을 수 있습니다 (예 : bin/phpunit).

참조 : https://getcomposer.org/doc/articles/vendor-binaries.md

이 또한 가능한 다른 옵션 - composer scripts, 또한 "설치 후-CMD"& "업데이트 후-cmd"를 실행하는 데 사용됩니다,하지만 당신은 자신을 넣을 수 있습니다 거기에 명령. 내가 composer test를 입력하면 다음

"scripts": { 
    "test": "phpunit -v --debug", 
    "behat": "behat", 
    "post-install-cmd": [ 
    ... rest of composer.json 

, 그것은 주어진 명령 줄 phpunit을 실행됩니다.