読者です 読者をやめる 読者になる 読者になる

Ruby test-unit の rake task

RSpecからの移行時に少しはまりました。
 
class Rake::TestTask (Ruby 2.4.0) を見ながら Rake taskを書いてみたのですが、RSpec--fomat documentのようにtestの名称(メソッド名)も実行時に表示させる方法について誤解があり、少し悶々とした時間を過ごしてしまいました。

最終的にはこうした

require "rake/testtask"

task default: :test

desc "Run tests"
ENV["TESTOPTS"] = "-v" unless ENV["TESTOPTS"]
Rake::TestTask.new do |t|
  t.libs << "test"
  t.test_files = Dir["test/**/test_*.rb"]
  t.verbose = true
end

環境変数のTESTOPTSで-vを指定しています。
Rake::TestTask.new のblockで指定している verbose がてっきりそれに該当するのかと思ってソース眺めてたのですが、そうではなく、単にテスト実行時に実行コマンドを表示するかどうかのみでした。
 
ちなみにtest-unitのverbose optionは以下。

    -v, --verbose=[LEVEL]            Set the output level (default is verbose).
                                     (important-only, n[ormal], p[rogress], s[ilent], v[erbose])