概要
どうも、@daiki1003です!みなさん、テストしていますか?
プロジェクトがある程度の規模感になると、単体テストはほぼ必須になってくるかなと思います。
そして単体テストに力を入れていれば、CIにも組み入れていることでしょう。
でも、Flutter
のテストって地味に時間かかりませんか?
そこで本記事ではFlutter
のテストを高速化できる方法を解説していきたいと思います。
それでは行ってみましょー!
どんな黒魔術を使うの?
これからさぞすごいことが行われるのだろう?と胸を躍らせているかもしれないのですが至ってシンプル。
very_good_cli | Dart packageを導入するだけです。
very_good_cliを導入してみよう
パッケージとして存在していますが、特に依存パッケージとして追加する必要はありません。
$ dart pub global activate very_good_cli
を実行するだけでOK。
テストの実行時間を比較してみる
flutter test
flutter test
を3回実行した結果がこちらです。
平均で27秒ほどかかっています。
very_good test
初回、実行してみると Optimizing...
が5秒くらいかかった後、10秒ほどで終わる。
合わせても16秒弱なので、すでに約50%削減w
2回目以降はOptimizing
のフェーズがほぼ瞬時に終了し、テスト時間も短縮しなんと合計5秒程度!
最長31秒から、最短で5秒ほどなのでなんと86%も削減されている…!
使わない理由があるのだろうか…。
一旦落ち着いて考えてみる
どうやら、少し調べてみると受け取れる引数の数が違いそうだ。
(見づらいですが、記事の本質ではないので許してね。)
flutter test –help | very_good test –help |
もう明らかに減ってそうですよね。
でも、大丈夫。
$ flutter test --no-track-widget-creation
を実行したければ
$ very_good test -- --no-track-widget-creation
とすれば実行出来ます。
つまり、very_good test
の後に--
を打ち、その後に必要な引数を追加するだけです。
あかん、very_good test
を使わない理由が見つからない…。
しかもな、おかんが言うにはさらにvery_good test
の利点があるって言うんや。
不要なpub getを実行しない
Test 🧪 | Very Good CLIによると、flutter test
と違い、very_good test
は実行時にpub get
を行わないそうです。
ですが、手元で確認したところ、flutter test
の実行前にpub get
を行っている様な挙動は確認できませんでした。
どなたか詳しくご存知の方がいらっしゃいましたら教えてください!
最後に
いかがでしたでしょうか?
もし、very_good_cli
を今すぐに試してみたいと思ってくれていたらこの記事を書いた甲斐があると言うものです。
でvery_good_analysis
についても書かせていただきましたが、very_good_ventures
社には頭が上がらないです…笑
ちなみに、このパッケージの使い方に関しては Lucas Goldner | 金さん 💙に教えてもらいました!大感謝!
誰かのお役に立てば。Twitterフォローお願いします
「次回以降も記事を読んでみたい!」「この辺分からなかったから質問したい!」
そんな時は、是非Twitter (@daiki1003)やInstagram (@ashdik_flutter)のフォローお願いします♪
Twitterコミュニティ参加お願いします
Twitterコミュニティ「Flutter lovers」を開設しました!参加お待ちしております😁
☕️ Buy me a coffee
また、記事がとても役に立ったと思う人はコーヒーを奢っていただけると非常に嬉しいです!
コメント