今、『プロを目指す人のためのRuby入門』(伊藤淳一[著])を読んでるんですが、使用するテストフレームワークminitestなのですよね。
RubyMineでminitestを追加しようとしたら、”New”の一覧にもないし、とりあえず手動でファイル作って
require 'minitest/autorun'
と書いてみたら”そんなファイルないよ”とのエラーが出ました。
公式ドキュメント見たら、minitestの実行要件が載っていたのでその通りにします。
と言っても、詳細な手順はさすがに載っていなくて、久々にrubyをさわったらBundlerの使い方を忘れていたので、詳細な手順を残しておきます。
Bundle Init
Tools > Bundler > Init
でBundlerを初期化します。
GemFileの書き換え
GemFileが作成されたので、下記を追加します。
group :test do gem "minitest" gem 'minitest-reporters', '>= 0.5.0' end
minitest-reportersは、minitest のバージョンが 5.0.0ならばインストールは必須ではないのですが、入れておくとテスト結果をツリー状に表示してくれるので、追加するのがおすすめです。(Important noteに書いてある)
公式ドキュメントには、'cucumber-rails'も書かれていますが、今回は必要ないので外しています。
Bundle Install
Tools > Bundler > Install
を選択して、gemをインストールします。
これでminitestを使用する準備が整いました。
テストファイル作成
“New”メニューにminitestのテンプレートが追加されるかと思いましたが、されませんでした。
テストファイルは、New > Ruby Class Template
らへんから作ります。
minitestのテストファイルは、(拡張子を除いた部分が)_test
で終わるか、test_
で始まり、拡張子が.rb
である必要があります。
また、テストクラス名はTest
で終わる必要があります。
テストメソッドはtest_
で始める必要があります。
ヘッダーはこんな感じ
require 'minitest/autorun' require 'minitest/reporters' MiniTest::Reporters.use!
テストクラスはMinitest::Testを継承します。
テスト実行
テストの実行はソースコードの実行と同じようにファイル右クリック > Run
でできます。testフォルダ右クリック > Run All Tests ..
で全てのテストを実行可能です
テスト実行結果です。テストを再実行したい場合は、左上の緑の三角ボタンを押します。
環境
プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで (Software Design plusシリーズ) [ 伊藤淳一(プログラミング) ] |
番外編
minitest-reportsをbundle installした直後に、以下のエラーが出ましたが、Rubymineを再起動したらエラーは出なくなりました。
`rescue in specs': Your bundle is locked to ansi (1.5.0), but that version could not be found in any of the sources listed in your Gemfile. If you haven't changed sources, that means the author of ansi (1.5.0) has removed it. You'll need to update your bundle to a different version of ansi (1.5.0) that hasn't been removed in order to install. (Bundler::GemNotFound)