🦔

Flutter 自動テスト 番外編 ~自動生成されているかをチェックする~

2023/12/27に公開

Flutter 自動テスト シリーズについて

Flutterの自動テストをStep by Stepで説明しています。

一連の記事を「本」(無料)にまとめました。
https://zenn.dev/yu1ro/books/2b5f8d32cc2668

今回の対象

Flutterには自動生成を行うライブラリがいくつもあります。
代表例をあげておくと以下があります

などです。(他にもあると思いますが)
これらを利用していて、自動生成をせずPull Requestを作成・マージしてしまい、
あとから差分が出てしまうということはありませんか?
私はありました。

build_verifyを使う

そんな方はbuild_verifyを使ってみてください

インストール方法

コマンドはこちら

flutter pub add build_verify --dev

テストコード

公式の説明を参照してもらうのがいいですが、我々のプロジェクトでは少し変えて以下のようにしています。

ensure_build_test.dart
import 'package:build_verify/build_verify.dart';
import 'package:test/test.dart';

void main() {
  test(
    '自動生成等がされているかの確認',
    expectBuildClean,
    timeout: const Timeout(Duration(minutes: 2)),
  );
}

timeoutがポイントです。
実際に自動生成のコマンドを実行して差分を確認しているため、
結構時間がかかります。GitHub Actionsで実行する場合に、これくらい時間がかかりました。
皆さんのプロジェクトでの適正値を設定してください。

実行

あとは他のテストと同様に実行するだけです。コマンドを再掲しておきます。

flutter test

以上です。

まとめ

簡単に自動生成がされているかを確認することができました。
みなさんもやってみてください。

最後に(宣伝)

友人と個人開発でゲーミフィケーション記録アプリ「HibaQuest」を作っています。
https://hiba.quest
実際にこのプロジェクトでも使っています。

Discussion