メインコンテンツまでスキップ

<file>:<line_number>(行番号がファイルパスに追加される)

1つ以上の例またはグループを実行するには、パスに行番号を追加することができます。例えば、

$ rspec path/to/example_spec.rb:37

背景

次のような "example_spec.rb" という名前のファイルがあるとします:

RSpec.describe "outer group" do

it "first example in outer group" do

end

it "second example in outer group" do

end

describe "nested group" do

it "example in nested group" do

end

end

end

次のような "example2_spec.rb" という名前のファイルがあるとします:

RSpec.describe "yet another group" do
it "first example in second file" do
end
it "second example in second file" do
end
end

次のような "one_liner_spec.rb" という名前のファイルがあるとします:

RSpec.describe 9 do

it { is_expected.to be > 8 }

it { is_expected.to be < 10 }

end

ネストされたグループ - 外側のグループが宣言行にある場合

rspec example_spec.rb:1 --format doc を実行すると、

  • すべての例がパスするはずです
  • 出力には "second example in outer group" が含まれるはずです
  • 出力には "first example in outer group" が含まれるはずです
  • 出力には "example in nested group" が含まれるはずです

ネストされたグループ - 外側のグループが例の前のブロック内にある場合

rspec example_spec.rb:2 --format doc を実行すると、

  • すべての例がパスするはずです
  • 出力には "second example in outer group" が含まれるはずです
  • 出力には "first example in outer group" が含まれるはずです
  • 出力には "example in nested group" が含まれるはずです

ネストされたグループ - 内側のグループが宣言行にある場合

rspec example_spec.rb:11 --format doc を実行すると、

  • すべての例がパスするはずです
  • 出力には "example in nested group" が含まれるはずです
  • 出力には "second example in outer group" が含まれないはずです
  • 出力には "first example in outer group" が含まれないはずです

ネストされたグループ - 内側のグループが例の前のブロック内にある場合

rspec example_spec.rb:12 --format doc を実行すると、

  • すべての例がパスするはずです
  • 出力には "example in nested group" が含まれるはずです
  • 出力には "second example in outer group" が含まれないはずです
  • 出力には "first example in outer group" が含まれないはずです

2つの例 - 最初の例が宣言行にある場合

rspec example_spec.rb:3 --format doc を実行すると、

  • すべての例がパスするはずです
  • 出力には "first example in outer group" が含まれるはずです
  • 出力には "second example in outer group" が含まれないはずです

_そして_出力には「ネストされたグループの例」が含まれていない必要があります。

2つの例 - 最初の例はブロック内にあります

rspec example_spec.rb:4 --format docを実行する_と_

例はすべてパスする必要があります

_そして_出力には「外部グループの最初の例」が含まれている必要があります

_しかし_出力には「外部グループの2番目の例」が含まれていない必要があります

_そして_出力には「ネストされたグループの例」が含まれていない必要があります。

2つの例 - 最初の例は最後にあります

rspec example_spec.rb:5 --format docを実行する_と_

例はすべてパスする必要があります

_そして_出力には「外部グループの最初の例」が含まれている必要があります

_しかし_出力には「外部グループの2番目の例」が含まれていない必要があります

_そして_出力には「ネストされたグループの例」が含まれていない必要があります。

2つの例 - 最初の例は最後の後ろですが次の例の前です

rspec example_spec.rb:6 --format docを実行する_と_

例はすべてパスする必要があります

_そして_出力には「外部グループの最初の例」が含まれている必要があります

_しかし_出力には「外部グループの2番目の例」が含まれていない必要があります

_そして_出力には「ネストされたグループの例」が含まれていない必要があります。

2つの例 - 2番目の例は宣言行にあります

rspec example_spec.rb:7 --format docを実行する_と_

例はすべてパスする必要があります

_そして_出力には「外部グループの2番目の例」が含まれている必要があります

_しかし_出力には「外部グループの最初の例」が含まれていない必要があります

_そして_出力には「ネストされたグループの例」が含まれていない必要があります。

2つの例 - 2番目の例はブロック内にあります

rspec example_spec.rb:7 --format docを実行する_と_

例はすべてパスする必要があります

_そして_出力には「外部グループの2番目の例」が含まれている必要があります

_しかし_出力には「外部グループの最初の例」が含まれていない必要があります

_そして_出力には「ネストされたグループの例」が含まれていない必要があります。

2つの例 - 2番目の例は最後にあります

rspec example_spec.rb:7 --format docを実行する_と_

例はすべてパスする必要があります

_そして_出力には「外部グループの2番目の例」が含まれている必要があります

_しかし_出力には「外部グループの最初の例」が含まれていない必要があります

_そして_出力には「ネストされたグループの例」が含まれていない必要があります。

異なるファイルに対して複数回指定された場合

もし rspec example_spec.rb:7 example2_spec.rb:4 --format doc を実行すると

ならば すべての例がパスするはずです

かつ 出力には "second example in outer group" が含まれるはずです

かつ 出力には "second example in second file" が含まれるはずです

しかし 出力には "first example in outer group" が含まれてはいけません

かつ 出力には "nested group" が含まれてはいけません

かつ 出力には "first example in second file" が含まれてはいけません。

同じファイルに対して複数回指定された場合

もし rspec example_spec.rb:7 example_spec.rb:11 --format doc を実行すると

ならば すべての例がパスするはずです

かつ 出力には "second example in outer group" が含まれるはずです

かつ 出力には "nested group" が含まれるはずです

しかし 出力には "first example in outer group" が含まれてはいけません

かつ 出力には "second file" が含まれてはいけません。

同じファイルに対して単一の引数で複数回指定された場合

もし rspec example_spec.rb:7:11 --format doc を実行すると

ならば すべての例がパスするはずです

かつ 出力には "second example in outer group" が含まれるはずです

かつ 出力には "nested group" が含まれるはずです

しかし 出力には "first example in outer group" が含まれてはいけません

かつ 出力には "second file" が含まれてはいけません。

ワンライナーのマッチング

もし rspec one_liner_spec.rb:3 --format doc を実行すると

ならば すべての例がパスするはずです

ならば 出力には "is expected to be > 8" が含まれるはずです

しかし 出力には "is expected to be < 10" が含まれてはいけません。