ブラウザテスト(Laravel Dusk) 5.6 Laravel
Laravelには自動でブラウザテストを行ってくれるduskという機能があります。それなりの手間がかかり、何度も行わなければならないブラウザ上における手作業を代行してくれる機能です。ブラウザテストなしに複雑な機能を変更の都度テストするのはとてもとても辛いです。
そのように便利なブラウザテスト機能を行うduskですが、様々な機能を実装するにつれテストが肥大化し総実行時間も長くなります。私的な環境ですが軽い検索機能付きページのテストは1ページ2分ほどで終わります。これに機能の大小、ページ数が加わり総実行時間は10分、20分となります。とてもやっていられないため結果が欲しい一部のテストのみを実行する必要に駆られます。
duskはPHPUnitの機能の大部分を引き継ぎブラウザテスト用にラッピングされたテストツールです。そしてPHPUnit同様のコマンドラインオプションが備わっており次の様なフィルターパターンによって、任意のクラス、任意のメソッドのテストを実行できます
例 3.2: フィルターパターンの例
-
--filter 'TestNamespace\\TestCaseClass::testMethod'
-
--filter 'TestNamespace\\TestCaseClass'
-
--filter TestNamespace
-
--filter TestCaseClass
-
--filter testMethod
-
--filter '/::testMethod .*"my named data"/'
-
--filter '/::testMethod .*#5$/'
-
--filter '/::testMethod .*#(5|6|7)$/'
PHPUnit マニュアル – 第3章 コマンドラインのテストランナーから引用
これにより何分も待たずに変更の度にテストをかけること、あるテストが通る様なコードを書くことが楽になります。