LoginSignup
19
15

More than 5 years have passed since last update.

Minitestで書いたテストコードをRubyMine上で実行する手順

Posted at

はじめに

この記事では「プロを目指す人のためのRuby入門」の読者向けに、Minitestで書いたテストコードをRubyMine上で実行する手順を紹介します。

実行環境

この記事は以下の環境で動作確認しています。

  • Ruby 2.4.1 (rbenvで新規にインストールした直後の状態)
  • RubyMine 2018.1.3
  • macOS 10.13.4

手順

1. RubyMineで新規プロジェクトを作成する

プロジェクトタイプはEmpty Projectで、Ruby SDKにRuby 2.4.1を指定します。

Screen Shot 2018-06-13 at 12.29.57.png

2. testディレクトリを作成する

「Projectペインを右クリック > New > Directory」でtestという名前のディレクトリを作成します。

Screen Shot 2018-06-13 at 12.33.33.png

ちなみに必須ではありませんが、testディレクトリを作ったら、「右クリック > Mark Directory as > Test Sources Root」としておくと、フォルダ(ディレクトリ)が緑色になって他のフォルダと識別しやすくなります。

Screen Shot 2018-06-13 at 12.35.35.png

3. テストファイルを作成する

testディレクトリを右クリック > New > Ruby Class」でSampleTestというクラスを作成します。

Screen Shot 2018-06-13 at 12.38.57.png

作成されたファイルの中身を以下のように書き換えます。

require 'minitest/autorun'

class SampleTest < Minitest::Test
  def test_sample
    assert_equal 'RUBY', 'ruby'.upcase
  end
end

minitest/autorunが見つからない、というエラーが出た場合は、Preferencesを開き、プロジェクトの"Ruby SDK and Gems"を確認してください。

Screen Shot 2018-06-13 at 12.41.17.png

4. テストを実行してみる

sample_test.rbを右クリック > "Run 'Run test 'sample_tes...'"」を選択し、テストを実行してください。

Screen Shot 2018-06-13 at 12.44.56.png

うまくいけば、下のように"All Tests Passed"の表示が出るはずです。

Screen Shot 2018-06-13 at 12.46.12.png

5. FizzBuzzプログラムをテストしてみる

プログラム本体とテストコードが分かれているケースもテストしてみましょう。「プロを目指す人のためのRuby入門」の3.3.2項を参考にして、libディレクトリにfizz_buzz.rbを、testディレクトリにfizz_buzz_test.rbをそれぞれ作成します。

lib/fizz_buzz.rb
def fizz_buzz(n)
  if n % 15 == 0
    'Fizz Buzz'
  elsif n % 3 == 0
    'Fizz'
  elsif n % 5 == 0
    'Buzz'
  else
    n.to_s
  end
end
test/fizz_buzz_test.rb
require 'minitest/autorun'
require './lib/fizz_buzz'

class FizzBuzzTest < Minitest::Test
  def test_fizz_buzz
    assert_equal '1', fizz_buzz(1)
    assert_equal '2', fizz_buzz(2)
    assert_equal 'Fizz', fizz_buzz(3)
    assert_equal '4', fizz_buzz(4)
    assert_equal 'Buzz', fizz_buzz(5)
    assert_equal 'Fizz', fizz_buzz(6)
    assert_equal 'Fizz Buzz', fizz_buzz(15)
  end
end

RubyMine上では以下のように見えるはずです。

Screen Shot 2018-06-13 at 12.54.38.png

fizz_buzz_test.rbを右クリック > "Run 'Run test 'fizz_buzz_...'"」を選択し、テストを実行してください。

下のように"All Tests Passed"の表示が出れば成功です。

Screen Shot 2018-06-13 at 12.55.46.png

応用

デバッグ実行してみる

RubyMineを使えば、簡単にデバッグ実行することができます(デバッグ実行については「プロを目指す人のためのRuby入門」の第11章で紹介しています)。

デバッグ実行をする場合、コードを止めたい行をクリックし、ブレークポイントを設定します。
たとえば、以下の例ではfizz_buzz.rbの2行目にブレークポイントを設定しています。

Screen Shot 2018-06-13 at 13.01.57.png

ブレークポイントを付けたら、「fizz_buzz_test.rbを右クリック > "Debug 'Run test 'fizz_buzz_...'"」を選択して、テストを実行します。

Screen Shot 2018-06-13 at 13.03.27.png

デバッグに必要なgemが不足している場合は以下のようなダイアログが表示されるので、Yesを選択してください。

Screen Shot 2018-06-13 at 12.57.50.png

gemがインストールされると、次のようにブレークポイントを設定した場所でプログラムの実行が停止します。

Screen Shot 2018-06-13 at 12.58.27.png

ステップ実行のためのコマンド(ステップオーバーやステップイン、ステップアウト)は以下のアイコンで表示されます。

Screen Shot 2018-06-13 at 13.07.56.png

Interactive consoleを使うと、変数の値やメソッドの戻り値を確認することができます。

Screen Shot 2018-06-13 at 13.10.07.png

RubyMineのデバッグ機能は非常に多機能なので、詳しい説明は以下のヘルプページを参考にしてください。

デバッグ - 公式ヘルプ | RubyMine

まとめ

この記事では「プロを目指す人のためのRuby入門」の読者向けに、、Minitestで書いたテストコードをRubyMine上で実行する手順を紹介しました。
RubyMineは有料のIDEですが、うまく使えばRuby初心者の方が効率良くRubyを習得するための強力なツールになります。
ぜひRubyMineの導入を検討してみてください。

19
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
15