10
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【RSpec】実行に時間がかかっているテストを抽出する方法

Posted at

RSpecのテストケースが増えてくると実行時間も増えて、テスト全体の実行にすごく時間がかかる...なんてことありませんか?
profileオプションを使用するとexampleごとの実行時間がわかり、遅いテストを抽出することができます。

遅いテストを抽出する

$ bundle exec rspec --profile
デフォルトでは、遅いexample上位10個とその実行時間が出力されます。

bundle exec rspec --profile > ファイル名でファイルへの出力も可能です。

$ bundle exec rspec --profile
...
Top 10 slowest examples (84.27 seconds, 17.0% of total time):
  test example1...
    13.98 seconds ./spec/requests/example_spec.rb:230
  test example2...
    7.91 seconds ./spec/requests/example_spec.rb:232
  test example3...
    7.84 seconds ./spec/requests/example_spec.rb:109
...
 
Finished in 8 minutes 14 seconds
1252 examples, 1 failure

--profileの後ろに件数を指定することで、出力する件数を変えることができます。
$ bundle exec rspec --profile 20と指定すると、遅いexample上位20個が出力されます。

すべてのテストの実行時間を調べる

$ bundle exec rspec --profile 全example数と指定すれば、すべてのexampleの実行時間がわかります。
テストケースが多くてexample数がわからないという場合は、以下のコマンドでテストを実行せずに調べられます。
$ bundle exec rspec -f d --dry-run --order defined

参考

10
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?