大規模になればなるほど、テストが大切になります。
しかし、大規模になればなるほど、テスト実行時間は長くなりテストを回すのは億劫になります。
今回は、タイトル通りitのケースをまとめて多少の高速化をしましょうという内容です。
方法
ただ、itをまとめる。
まずは、10個のテストケースを1つのブロックの中に入れて実行してみます。
before
after
結果
before
項目 | 単位 |
---|---|
ケース数 | 100[個] |
実行時間 | 74.27[s] |
1ケースあたり実行時間 | 0.74[s/個] |
※補足
files took 11.8 seconds
とは、specを回す前にファイル読み込みにかかった時間です。
つまり、合計時間は実行時間+ファイル読み込み時間です。
after
項目 | 単位 |
---|---|
ケース数 | 10[個] |
実行時間 | 10.09[s] |
1ケースあたり実行時間 | 1.1[s/個] |
実際に回してみるとわかりますが、かなり速くなっています。
分析
項目 | before | after |
---|---|---|
1ケースあたり時間 | 100% | 148% |
ケース数 | 100% | 10% |
実行時間 | 100% | 15% |
85%も実行時間を減らすことが出来ました。
しかし、現実問題10個のテストケースを1つにまとめるのは流石に出来ないでしょう。
そこで、次は、テストケース2つを1つにまとめた場合を実行してみます。
2つのテストケースを1つにまとめた場合
before
項目 | 単位 |
---|---|
ケース数 | 20[個] |
実行時間 | 16.94[s] |
1ケースあたり実行時間 | 0.85[s/個] |
after
項目 | second |
---|---|
ケース数 | 10[個] |
実行時間 | 10.28[s] |
1ケースあたり実行時間 | 1.03[s/個] |
分析
項目 | before | after |
---|---|---|
1ケースあたり時間 | 100% | 121% |
ケース数 | 100% | 50% |
実行時間 | 100% | 61% |
実行時間を85%削ることは出来ませんでしたが、それでも40%も減らすことが出来ました。
まとめ
テストケース | 実行時間 |
---|---|
100% | 100% |
50% | 61% |
10% | 15% |
だいたい、2つを1つにまとめると、実行時間を40%削減
3つを1つにまとめると、実行時間を60%くらい削減できそうです。
是非、試してみてください。