2017-10-19 16 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を実行すると、laravelで動作しない別のphpunitバイナリが実行されることに注意してください。私はvendor変数/ bin/phpunitフォルダをPATH変数に追加しようとしましたが、ヘルプはありませんでした。私はapt-get(これは動作しないもの)でインストールしたphpunitを削除しようとしましたが、私のwwwフォルダからphpunitを実行すると、フルパスが動作していてもphpunitはインストールされません。または、path変数を有効にするにはサーバーを再起動する必要がありますか?ありがとう –

+1

こんにちはマルシン、答えをありがとう。これはpath変数のタイプミスによるものです。 –

0

composer.jsonは、コマンドファイルが置かれる場所を設定するオプションがあります:

"bin-dir": "vendor/bin", 

それはちょうど「ビン」に設定することができます - そしてそれ、およびComposerで含まれている他の実行可能ファイルですそこにいる、例えば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を実行します。

関連する問題