導入すると大幅に高速化できる可能性があります。使ったプロジェクトありましたが、導入後なんと5分にまで短縮されました。回せるようになり開発スピードも上がりました。何がボトルネックになっていたか?テストケースごとに実行されるテストデータのリロードクエリがボトルネックになっていました。クエリのセットのことで、積み重なると高コストなクエリになります。名の一覧を記述します。例として、テストクラスは以下のようになります。テストケースの実行前に、それぞれ3テーブル分のリロードクエリが実行されます。同じように、このクラスに100個のテストケースがあったとしたらリロードクエリは最低で300回実行されます。コストになることは想像に難くないと思います。無意味に何度もリロードしている訳ではありません。毎回リロードすることで、テストが書きやすくなるというメリットがあります。テスト中にいくらテストデータを書き換えたとしても、次のテストでは元の状態にリセットされているので、テストケース間でテストデータの状態について副作用を気にする必要がなくなります。ソースを見ると分かりますが、このプラグインのすることは非常にシンプルです。上述の「毎回同じテストデータの状態でテストを開始したい!」という要求を満たしつつ、必要なときだけリロードするようにし、リロードクエリの実行回数を削減します。テーブルのチェックサム値を取っておき、次以降のリロードは差分があったときだけ行うようにします。チェックサム値に差分がなければテストデータが変更されていないということなので、リロードもスキップして問題ないということになります。プラグインで高速化できる可能性のあるプロジェクトということで、以下に該当するプロジェクトであればプラグインを導入するだけで大幅にテスト時間を削減できる可能性があります。いずれかを使用しているテストケース数とテーブル数が多いプロジェクト複数テーブルを参照する結合的なテストをしているプロジェクトまた、もしこのプラグインが使えない環境のプロジェクトであっても、不要なロードを減らすというアプローチ自体は有効かもしれません。その他のアプローチ他のアドベントカレンダーになりますが、素晴らしい記事を見かけましたのでそちらも紹介しておきます。無くすることで高速化するというアプローチです。併用することで更に高速化が見込めます。試しに手元の1500個ほどテストケースがあるプロジェクトで試してみたら、記事に書かれてる通り40%くらい削減できた。やったことは二行追記するだけ。内容を要約してみたいと思います。触っていて感じたことを元に補足している内容も含まれますのでニュアンスが異なる部分もあるかもしれません。変更したい場合は代入する。分離対応についてより簡単なインターフェースにしてコードの複雑さを軽減することが目的。2018年初頭になりそう。以上が要求されること以外は比較的シンプルなアップデートになるのではないでしょうか。流れを汲みつつ堅実に進化していっているなという印象を受けました。古株のフレームワークとして安心感のあるフレームワークであることは今後も変わらないと思います。接続先を明示的に指定することが出来ます。設定されていることが前提になります。オプションにデータソース名を指定します。migrateただし、この方法は全てのマイグレーションファイルで指定した接続先が使用されます。マイグレーションファイルごとに接続先を切り替えたい場合は以下を参照してください。アナログな方法にはなりますが、少し手を加えることで実現できます。以下のように接続先ごとにフォルダを分けて、その中にマイグレーションファイルを入れておきます。オプションで上記のディレクトリを指定してマイグレーションします。テーブル上で管理されるため、バッティングせずにマイグレーション出来ます。コマンドオプション指定の組み合わせは間違えないよう注意する必要があります。31Author明日を今日より生きやすく。johnregan3.ホーム。