4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

gem の rake test で特定のファイルだけ実行する方法

4
Last updated at Posted at 2020-10-31

既存の記事には見当たらず(探し方が悪いだけかも),リファレンスでも見つけるのが困難だったので記事にする。

gem を開発していて,テストを実行するには,

rake test

とすればよい。
おっと,前提条件として,

bundle gem hoge

のようにして作った,典型的な構成の gem とする。

特定のテストファイルだけを実行したいときにはどうするか?
以下のようにしてファイルを指定すればよい。

rake test TEST=path/to/some_test.rb

このことは Ruby 公式リファレンスの
class Rake::TestTask (Ruby 2.7.0 リファレンスマニュアル)
に「test ターゲットの使用例」として書いてあった。
うーん,しかし,このページにたどり着くのはなかなか難しいな。それに「例」として 1 行掲載されているだけで説明が無いし。

実験したところ,TEST の指定にはワイルドカードが使えるようだった。
よって,ディレクトリーや拡張子を書くのが面倒なら

rake test TEST=**/some_test*

のようにすることもできる。

ちなみに bundle gem hoge で作った gem だと test がデフォルトタスクなので,test を略して

rake TEST=**/some_test*

と書くこともできる。

追記 2025-10-26

シェルによっては * がそのまま渡されずに,シェルに対するワイルドカードとみなされて

zsh: no matches found: TEST=**/some_test*

のような結果になる。

このような場合,

rake TEST="**/some_test*"

とか

rake "TEST=**/some_test*"

のように " " で囲って書けばよいようだ。
' ' で囲ってもよいみたい)

4
1
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
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?