Railsのバージョンを上げようと思って、3年ぶりくらいにRails 4.2のアプリケーションに触りました。 テストコードがあるのですが、test-unitです。 この組み合わせを触るのが久しぶりなので苦戦しました。 コミットログを見る限り、3年前に自分でテストコードを書いています。 残念ながら、すっかり忘れています。
テストを実行するのはrakeタスク
まず、テストの実行方法がわかりません。
RubyOnRails を使ってみる 【第 6 回】 テストの書き方によると
Rails のテストをまとめて実行するときには、rake タスクを実行します。
bundle exec rake test
でした。 こういうとき、るびまは古い記事をずっと残してくれていてありがたいです。
テストをペンディングするのはskipメソッド
テストの一部が外部のAPIに依存していました。 上手く通らないので、一時的にペンディングしたいです。 Pendingで探してたのですが、やり方がわかりません。
ruby on rails 3 - How to use the Pending module in ActiveSupport - Stack OverflowによるとRails 3にはpending
メソッドがあったようです。
Rails 3と4との間のコミットをあさって、 pending
の代わりにskip
を使えば良いという情報を得ました*1。
なんか探索ルートを間違えたような気がしますが、解決したので良しとします。
特定のテストファイルを実行する時は環境変数TESTを使う
1つのファイルのテストだけを実行したい時があります。 このときは次のように、環境変数で実行するテストファイルを指定します。
rake test TEST=just_one_file.rb
同僚の id:sanfrecce-osaka さんに教えてもらいました。
追記
test-uintの情報を探したから苦労したのであって、Minitestで探せば良かった気がします。