ということがあったので、そのメモ。

環境


  • Minitest 5.10.2
  • Ruby 2.4.1

やり方


非常に簡単でskipメソッドを呼べばよいだけ。

1
2
3
4
5
6
7
8
def test_scenario_one
# canExecuteメソッドはbool値を返してくるものとする
if(!canExecute)
skip
end

# 以下テストが続くよ
end

上記の場合ではbool値を返してくるcanExecuteがあったとして、その戻り値がfalseの場合は以降のテストがスキップされる。

テストがスキップされたかどうか判断する


skipped?で確認できる。
例えばteardownで下記のように記述してテストをスキップした場合はSkipしたの文字が表示される。

1
2
3
4
5
6
7
8
def teardown
if(passed?)
puts 'OK'
elsif(skipped?)
puts 'Skipした'
else
puts 'NG'
end

ちなみにテストをskipした場合はpassed?(テストがパスしたかどうか)はfalse扱いになる模様。