コードを変更するたびに PHPUnit テストが自動的に再実行されたら素晴らしいと思いませんか?このパッケージはまさにそれを実現します。
パッケージをインストールすると、次のことが可能になります。
phpunit-watcher watch
次のようになります。
これにより、テストが実行され、 app
、 src
、またはtests
ディレクトリ内のファイルが変更されるたびにテストが再実行されます。
PHPUnit に引数を渡したいですか?問題ありません。貼り付けるだけです。
phpunit-watcher watch --filter=it_can_run_a_single_test
Laracon EU 2017 での素晴らしい講演の中で、Amo Chohan は phpunit-watcher の動作を示しています。
私たちはクラス最高のオープンソース パッケージの作成に多くのリソースを投資しています。有料製品のいずれかを購入することで、私たちをサポートできます。
当社のどのパッケージを使用しているかについて、故郷から葉書を送っていただき、誠にありがとうございます。当社の住所は、お問い合わせページに記載されています。受け取ったすべてのポストカードをバーチャル ポストカード ウォールに公開します。
このパッケージは次のようにグローバルにインストールできます
composer global require spatie/phpunit-watcher
その後、 phpunit-watcher watch
システム上の任意のディレクトリで実行できるようになります。
あるいは、プロジェクトの開発依存関係としてパッケージをローカルにインストールすることもできます
composer require spatie/phpunit-watcher --dev
ローカルにインストールされている場合はvendor/bin/phpunit-watcher watch
で実行できます。
すべての例では、パッケージがグローバルにインストールされていることを前提としています。ローカルインストールを選択した場合は、 phpunit-watcher
が記述されている場所に、 vendor/bin/
先頭に追加します。
ウォッチャーは次のように起動できます。
phpunit-watcher watch
これにより、テストが実行され、 src
またはtests
ディレクトリ内のファイルが変更されるたびにテストが再実行されます。
PHPUnit に引数を渡したいですか?問題ありません。貼り付けるだけです。
phpunit-watcher watch --filter=it_can_run_a_single_test
Composer スクリプトからphpunit-watcher
実行する場合、対話型コマンドを機能させるために入力をリダイレクトし、デフォルトのタイムアウトを無効にする必要がある場合があります。
{
"scripts" : {
"test:watch" : [
" Composer \ Config::disableProcessTimeout " ,
" phpunit-watcher watch < /dev/tty "
]
}
}
Windows では、現在 TTY がサポートされていないため、対話は無効になっています。変更の監視は機能しますが、最初にphpunit-watcher
呼び出すときに PHPUnit の引数を指定する必要があります。
ツールの動作の特定の側面は変更できます。オプションのファイルの名前は、 .phpunit-watcher.yml
、 phpunit-watcher.yml
、またはphpunit-watcher.yml.dist
です。ツールはこの順序でファイルを検索します。
プロジェクト ディレクトリに構成ファイルが存在しない場合、ツールはプロジェクト ディレクトリの親ディレクトリのいずれかにファイルが存在するかどうかを確認します。
以下にコンテンツの例を示します。すべてのオプションの詳細な説明を読み続けてください。
watch :
directories :
- src
- tests
fileMask : ' *.php '
notifications :
passingTests : false
failingTests : false
phpunit :
binaryPath : vendor/bin/phpunit
arguments : ' --stop-on-failure '
timeout : 180
プロジェクト ディレクトリに.phpunit-watcher.yml
という名前のファイルを作成することで、監視対象のディレクトリをカスタマイズできます。コンテンツの例を次に示します。
watch :
directories :
- src
- tests
exclude :
- lib
fileMask : ' *.php '
ignoreDotFiles : true
ignoreVCS : true
ignoreVCSIgnored : false
詳細については、Finder のドキュメントを参照してください。
大規模なリポジトリでパフォーマンスの遅延が発生する場合は、監視する必要のない大規模なサブディレクトリにexclude
エントリを追加してみてください。 ignore...
オプションを有効にすることも役立つ場合があります。 '*.php'
ファイル マスクも使用していることを確認することも重要です。
デフォルトでは、ツールはテストが成功または失敗するたびにデスクトップ通知を表示します。特定のデスクトップ通知を無効にする場合は、 notifications
キーを追加して.phpunit-watcher.yml
を更新します。
notifications :
passingTests : false
failingTests : false
デフォルトでは、ツールは各実行後にキーボード操作のヘルパーを表示します。これらのヘルプ メッセージを非表示にするには、 .phpunit-watcher.yml
にhideManual
キーを追加します。
hideManual : true
デフォルトでは、ツールはデフォルトのPHPUnitバイナリファイルとしてvendor/bin/phpunit
使用しますが、別の場所にバイナリファイルがある人のためにこの値をカスタマイズできると便利な場合があります。
.phpunit-watcher.yml
構成ファイルで指定できます。以下に例を示します。
phpunit :
binaryPath : ./vendor/phpunit/phpunit/phpunit
ウォッチャーを起動するたびに同じ引数を PHPUnit に渡したい場合は、 .phpunit-watcher.yml
構成ファイルでそれらの引数を指定できます。以下に例を示します。
phpunit :
arguments : ' --stop-on-failure '
いくつかの引数 (例: phpunit-watcher watch --filter=my_favourite_test
) を指定してツールを起動すると、構成ファイルで指定された引数の代わりにそれらの引数が使用されます。
最近の変更点の詳細については、CHANGELOG を参照してください。
composer test
詳細については、「貢献」を参照してください。
セキュリティに関するバグを見つけた場合は、問題トラッカーを使用する代わりに [email protected] にメールを送信してください。
このパッケージは自由に使用できます (MIT ライセンスが付与されています) が、頻繁に使用する場合は、どのパッケージを使用しているかを記載したポストカードを故郷から送っていただければ幸いです。
私たちの住所は、Spatie, Kruikstraat 22, 2018 Antwerp, Belgiumです。
いただいたはがきはすべて当社ホームページに掲載しております。
Christoper Pitt によるこの素晴らしい記事を読んだ後、このパッケージの作成を開始しました。
インタラクティブ コマンドは Jest からインスピレーションを得たものです。
MIT ライセンス (MIT)。詳細については、ライセンス ファイルを参照してください。