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

--example オプション

--example (または -e) オプションを使用して、名前で例をフィルタリングします。

引数は、例の完全な説明と一致します。これは、グループの説明(ネストされたグループを含む)と例の説明を連結したものです。

これにより、単一の一意の名前を持つ例、類似した名前を持つすべての例、一意の名前を持つグループのすべての例などを実行できます。

また、複数の例の一致を指定するために、オプションを複数回使用することもできます。

注意: one-liner syntaxを使用する場合、生成された説明を持たない例は、このオプションで直接フィルタリングすることはできません。なぜなら、説明を生成するために例を実行する必要があり、まだ生成されていない説明を使用して例を実行するかどうかを決定することができないためです。もちろん、グループの説明の一部を渡すことで、グループで定義されたすべての例(説明のない例も含む)を選択することができます。

背景

以下の内容で "first_spec.rb" という名前のファイルがあるとします:

RSpec.describe "first group" do
it "first example in first group" do; end
it "second example in first group" do; end
end

以下の内容で "second_spec.rb" という名前のファイルがあるとします:

RSpec.describe "second group" do
it "first example in second group" do; end
it "second example in second group" do; end
end

以下の内容で "third_spec.rb" という名前のファイルがあるとします:

RSpec.describe "third group" do
it "first example in third group" do; end
context "nested group" do
it "first example in nested group" do; end
it "second example in nested group" do; end
end
end

以下の内容で "fourth_spec.rb" という名前のファイルがあるとします:

RSpec.describe Array do
describe "#length" do
it "is the number of items" do
expect(Array.new([1,2,3]).length).to eq 3
end
end
end

一致なし

rspec . --example nothing_like_this を実行すると、

例が実行されなかったとしても、プロセスは成功するはずです。

1つの単語で一致

rspec . --example example を実行すると、

すべての例がパスするはずです。

各コンテキストで1つの一致

rspec . --example 'first example' を実行すると、

すべての例がパスするはずです。

1つのファイルで1つの一致(例の名前のみを使用)

rspec . --example 'first example in first group' を実行すると、

すべての例がパスするはずです。

1つのファイルで1つの一致(例の名前とグループ名を使用)

rspec . --example 'first group first example in first group' を実行すると、

すべての例がパスするはずです。

すべての例を1つのグループにまとめた場合

実行するとき rspec . --example 'first group'

すると すべての例がパスするはずです。

グループ名を指定して1つのファイルで一致する場合

実行するとき rspec . --example 'second group first example'

すると すべての例がパスするはずです。

ネストされたグループの例を含む1つのグループのすべての例

実行するとき rspec . --example 'third group'

すると すべての例がパスするはずです。

ClassName#method_name 形式を使用した一致

実行するとき rspec . --example 'Array#length'

すると すべての例がパスするはずです。

例名オプションの複数の適用

実行するとき rspec . --example 'first group' --example 'second group' --format d

すると すべての例がパスするはずです。

かつ 出力には次のすべてが含まれているはずです:

| first example in first group | | second example in first group | | first example in second group | | second example in second group |

かつ 出力には次のいずれも含まれていないはずです:

| first example in third group | | nested group first example in nested group | | nested group second example in nested group |