test/unit でテスト全体の setup と teardown
本格的に Ruby 1.9.1 に移行してみようと、仕事で使ってるユニットテストを動かしてみた。
test/unit を素直に使うと、勝手にテストが実行される。*1
これだと、テスト全体の前処理, 後処理を実装できない。
Ruby1.8.x の頃は、
- TestSuite を作って、
- TestSuite に fixture を追加して、
- テスト全体の前処理をした後、
- TestRunner.run して、
- 最後にテスト全体の後処理をしていた。
ところが Ruby1.9.1 には TestRunner が存在しない。*2
焦った。
どうやら 1.9.1 では minitest/unit なるものを使ってるらしい。
いろいろやってみた結果、
# require 'test/unit' # これだと勝手に実行されてしまう require 'minitest/unit' require 'test/unit/testcase' class TestFoo <Test::Unit::TestCase # テストを書く end # ここでテスト全体の前処理 err = MiniTest::Unit.new.run(ARGV) # これで実行 exit false if err && err != 0 # ここでテスト全体の後処理
これでいいみたい。
前より簡単になった。