如果每當您更改某些程式碼時 PHPUnit 測試都會自動重新執行,那不是很好嗎?這個包正是可以做到這一點。
安裝軟體包後,您可以執行以下操作:
phpunit-watcher watch
它看起來是這樣的:
這將運行測試,並在app
、 src
或tests
目錄中的檔案修改時重新運行它們。
想要傳遞一些參數給 PHPUnit?沒問題,只需將它們粘上即可:
phpunit-watcher watch --filter=it_can_run_a_single_test
Amo Chohan 在 Laracon EU 2017 的精彩演講中展示了我們的 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
預設情況下,該工具使用vendor/bin/phpunit
作為預設的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
),將使用這些參數而不是設定檔中指定的參數。
請參閱變更日誌以了解最近變更的更多資訊。
composer test
詳細資訊請參閱貢獻。
如果您發現有關安全的錯誤,請發送郵件至 [email protected],而不是使用問題追蹤器。
您可以自由使用這個軟體包(它是麻省理工學院許可的),但如果您經常使用它,我們非常感謝您從您的家鄉給我們寄一張明信片,註明您正在使用我們的哪個軟體包。
我們的地址是:Spatie, Kruikstraat 22, 2018 安特衛普, 比利時。
我們在公司網站上發布所有收到的明信片。
在閱讀 Christoper Pitt 的這篇優秀文章後,我們開始創建這個包
互動式指令的靈感來自 Jest。
麻省理工學院許可證 (MIT)。請參閱許可證文件以獲取更多資訊。