DMM.comラボエンジニアブログ

DMM.comラボのエンジニアブログです。DMM.comを支える技術について書いています。

DMM insideに引っ越しました。 移転先はこちら -> https://inside.dmm.com/

minitestプラグインをリリースしました。

こんにちは。
DMM.comラボでプラットフォームの開発をしておりますいっちーです。

PHPやJAVAを使うことが多いDMMですが、
最近ではRubyやNode.jsなどチームやプロジェクトごとに様々な言語を使うようになってきました。

今回はRubyに関してのブログを書きます。
Rubyのテストフレームワークは色々ありますが、その中のminitest
というフレームワークのプラグインとしてminitest-names
というものを作成したのでgemを公開しました。

ソースコードはdmm.com laboのgithubリポジトリにあります。
作成したのはプラグインですがgem形式なのでrubygems.orgにも置きました。

どんな機能なのか?

端的に説明するとテストケース名を複数指定して、それらを実行するものです。
minitestのテストは以下のようにtest_で始まる関数で、実行時にこの名前を指定することで任意のテストを実行することができます。

def test_say_hello
  pass
end
 
def test_say_kiaora
  pass
end

ただし、テストケース名の指定は1つ、もしくは正規表現で渡す必要があるため、任意の複数個のテストケースを実行しようとすると多少苦労します。
そこでminitest-namesというプラグインを作りました。

使い方

使い方はいたって簡単でテストケース名をカンマ区切りで渡すだけです。
オプションはショート・ロング両方あります。ショートオプションは-Nです。

$ rake TESTOPTS="-N=\"test_say_hello, test_say_kiaora\""

ロングオプションは--namesになります。

$ rake TESTOPTS="--names=\"test_say_hello, test_say_kiaora\""


この例だと普通に正規表現で良いのですが、細かいことは気にせずに。

最後に

バグ等ありましたらpatch、PRよろしくお願いします!