Laravel5.4 Duskを試してみる!

はじめに

たまには、ブログも書かないと。
まぁいろいろとネタは書き溜めているんだけど、吐き出すのがめんどくさい。でもがんばるよ!!

今回のネタは「Laravel Dusk」(ららべる だーすく:夕暮れ)ブラウザの自動操作をしてくれる凄いやつ。

予算あるならテスト自動化!無いんなら目視!
永続的プロジェクトならテスト自動化!非永続なら目視!
まあいろいろと考え方はありますわな。

ということで、試してみる!

試してみる環境

macOS Sierra 10.12.6
PHP 7.0.9
Laravel 5.4
MariaDB 10.1.16
※PHPやMariaDBはXAMPP7.0.9-0を使用。

参考にしたURL

https://readouble.com/laravel/5.4/ja/dusk.html
http://qiita.com/amymd/items/0a5f2705e29972d0d22e

まずは準備

Laravelのプロジェクト作成やDBの準備ははしょる。

認証系の動作が見れれば良いから、Laravel標準の認証を使用。

あれ?調べた結果、XAMPPについてるMariaDBではstringのデフォルトサイズを変更してあげないとダメっぽい。

再度実行すれば大丈夫だと思う。これで、ブラウザで表示するとログインやらユーザーの登録やらができるようになる。

Duskインストール

うーん。Laravel5.5リリースの影響で使えない…っぽい?
じゃあバージョン指定してインストール。

めっさ遅い…インストールできた。

サービスプロバイダを以下の感じで登録する。

local環境とtesting環境のときだけDuskを有効にするみたいな感じ。
まあ準備完了!次にDuskをインストールする。

/tests/Browser ってディレクトリができる。
/tests/DuskTestCase.php ってファイルができる。

これでインストール作業はおしまい。

とりあえず動かしてみる。

以下のファイルを修正して、

とりあえず動かしてみる!

エラーが出る!

DuskTestCase.phpは修正したらダメだった。
もとに戻して、

よかった。chromeが一瞬起動しましたよ!よかったよかった。

 

テストシナリオ

ユーザー登録→ホーム→ログアウト→ログイン
まぁこんな感じで。

ってな感じで作って、以下を実行するとchromeが起動して自動で動いてくれる。

テストロジック作るのが面倒だけど、正常系よりも異常系の方がどうなるかが重要なんで、積極的に取り入れようかなぁ…

今後の課題

  • テストDBへの切り替え
  • 他のブラウザでのやり方