RSpecのオプションで遅いテストを探す

こんにちは。

GMOアドマーケティングのR.Sです。

今回は、RSpecでテストを遅い順に表示する--profileというオプションを紹介したいと思います。

 

profileとは

遅いテストをリストアップするオプションです。このオプションを使ってRSpecテストを実行すると下記のような形で出力されます。

 

ヘルプで確認すると、

--[no-]profile [COUNT]

となっています。

デフォルトで遅い順に10件表示されますが、COUNTの部分に出力したい件数を入れることで変更可能です。

使い方は、コマンドで直接オプションを指定する方法と、.rspecファイルに記載する方法があります。

 

コマンドで直接オプションを指定する方法

通常の使用方法

$ rspec --profile

遅い順に5件のファイルをリストアップする

$ rspec --profile 5

パスの指定や他のオプションとの併用もできます。

パスを指定する

$ rspec --profile -- spec/features/~~~

指定したパス内で5件リストアップする

$ rspec --profile 5 spec/features/~~~

exampleオプションと併用する

$ rspec --profile --example "test"

 

.rspecファイルに記載する方法

.rspecファイルに記載すると、RSpecテスト実行時にオプションを指定しなくても、指定したものとして実行されます。

業務でテスト時間を計測しているときに毎回オプション指定する手間を省くため、こちらの方法で実行していました。

.rspecファイルは下記のように変更します。

.rspecファイルでオプション指定したけれど表示してほしくないというときは

$ rspec --no-profile

というように実行すると表示されません。

 

まとめ

実際に業務で使用して、遅いテストを調査するのに役立ちました。

他にもRSpecのオプションはたくさんあり、$ rspec --helpで確認できます。さらに便利になる可能性があるので1度チェックしてみると良いかもしれません。