概要
rspec config | default_path
詳細
RSpecはデフォルトでspec配下のファイルをテスト対象とします。
これを変更する場合はdefault_pathオプションを利用します。
・rspecコマンド呼び出し時に指定する
・.rspecファイルに設定する
などの方法があります。
サンプル仕様
単体テスト用のut_spec, 結合テスト用のit_specを別フォルダにしてプロジェクトのroot直下に作成。
単体は
rspec -fd --default_path ut_spec
結合は
rspec -fd --default_path it_spec
で呼び分ける。
構成
tree
┣ it_spec
| ┣ hige_spec.rb
| ┗ spec_helper.rb
┣ lib
| ┗ hige.rb
┗ ut_spec
┣ hige_spec.rb
┗ spec_helper.rb
ut_spec/hige_spec.rb
require './ut_spec/spec_helper' require 'hige' RSpec.configuration.debug = true if rand > 0.5 describe Hige do context "ut hige1", :hige1 => "hige1_outer" do it "ut hige1", :hige1 => "hige1_inner" do puts "case hige1" if RSpec.configuration.debug expect("hige1_inner").to eq(example.metadata[:hige1]) end end it "ut hige2", :hige2 => "hige2" do puts "case hige2" if RSpec.configuration.debug expect("hige2").to eq(example.metadata[:hige2]) end end
it_spec/hige_spec.rb
require './it_spec/spec_helper' require 'hige' RSpec.configuration.debug = true if rand > 0.5 describe Hige do context "it hige1", :hige1 => "hige1_outer" do it "it hige1", :hige1 => "hige1_inner" do puts "case hige1" if RSpec.configuration.debug expect("hige1_inner").to eq(example.metadata[:hige1]) end end it "it hige2", :hige2 => "hige2" do puts "case hige2" if RSpec.configuration.debug expect("hige2").to eq(example.metadata[:hige2]) end end
ut spec実行結果
$ rspec -fd --default_path ut_spec
Run options: include {:focus=>true}
All examples were filtered out; ignoring {:focus=>true}
Hige
case hige2
ut hige2
ut hige1
case hige1
ut hige1
Finished in 0.00201 seconds
2 examples, 0 failures
it spec実行結果
$ rspec -fd --default_path it_spec
Run options: include {:focus=>true}
All examples were filtered out; ignoring {:focus=>true}
Hige
case hige2
it hige2
it hige1
case hige1
it hige1
Finished in 0.001 seconds
2 examples, 0 failures