概要
rspec command | fail fast option
サンプルコード(hoge.rb)
100メソッド定義
# encoding: utf-8 class Hoge (1..100).each do |i| define_method "hoge#{i.to_s}" do "hoge#{i.to_s}" end end end
サンプルテストコード(hige_spec.rb)
100メソッドテスト
# encoding: utf-8 require "spec_helper" require "hoge" describe Hoge do (1..100).each do |i| it "hoge #{i.to_s}", :hoge1 => "hoge", hoge: true do ret = Hige.new.send "hoge{i.to_s}" expect(Array.new([1,2,3]).length).to eq "hoge{i.to_s}" end end end
fail fast optionを試す
fail fastを指定しなかった場合
Finished in 0.03415 seconds
Run options: include {:focus=>true} All examples were filtered out; ignoring {:focus=>true} FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF Failures: 1) Hoge hoge 1 Failure/Error: ret = Hige.new.send "hoge{i.to_s}" NameError: uninitialized constant Hige # ./spec/hoge_spec.rb:8:in `block (3 levels) in <top (required)>' 2) Hoge hoge 2 Failure/Error: ret = Hige.new.send "hoge{i.to_s}" NameError: uninitialized constant Hige # ./spec/hoge_spec.rb:8:in `block (3 levels) in <top (required)>' # 中略 100) Hoge hoge 100 Failure/Error: ret = Hige.new.send "hoge{i.to_s}" NameError: uninitialized constant Hige # ./spec/hoge_spec.rb:8:in `block (3 levels) in <top (required)>' Finished in 0.03415 seconds 100 examples, 100 failures Failed examples: rspec ./spec/hoge_spec.rb:7 # Hoge hoge 1 rspec ./spec/hoge_spec.rb:7 # Hoge hoge 2 # 中略 rspec ./spec/hoge_spec.rb:7 # Hoge hoge 100
fail fastを指定した場合
実行時間がFinished in 0.001 secondsになった
$ rspec --fail-fast Run options: include {:focus=>true} All examples were filtered out; ignoring {:focus=>true} F Failures: 1) Hoge hoge 1 Failure/Error: ret = Hige.new.send "hoge{i.to_s}" NameError: uninitialized constant Hige # ./spec/hoge_spec.rb:8:in `block (3 levels) in <top (required)>' Finished in 0.001 seconds 1 example, 1 failure Failed examples: rspec ./spec/hoge_spec.rb:7 # Hoge hoge 1