<file>:<line_number> (行号附加到文件路径)

要运行一个或多个示例或组,您可以将行号附加到路径,例如

  $ 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

以及 一个名为“onelinerspec.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

那么 示例应该全部通过

以及 输出应该包含“外部组中的第二个示例”

以及 输出应该包含“外部组中的第一个示例”

以及 输出应该包含“嵌套组中的示例”。

嵌套组 - 外部组在示例之前的块内

我运行 rspec example_spec.rb:2 --format doc

那么 示例应该全部通过

以及 输出应该包含“外部组中的第二个示例”

以及 输出应该包含“外部组中的第一个示例”

以及 输出应该包含“嵌套组中的示例”。

嵌套组 - 内部组在声明行上

我运行 rspec example_spec.rb:11 --format doc

那么 示例应该全部通过

以及 输出应该包含“嵌套组中的示例”

以及 输出不应该包含“外部组中的第二个示例”

以及 输出不应该包含“外部组中的第一个示例”。

嵌套组 - 内部组在示例之前的块内

我运行 rspec example_spec.rb:12 --format doc

那么 示例应该全部通过

以及 输出应该包含“嵌套组中的示例”

以及 输出不应该包含“外部组中的第二个示例”

以及 输出不应该包含“外部组中的第一个示例”。

两个示例 - 第一个示例在声明行上

我运行 rspec example_spec.rb:3 --format doc

那么 示例应该全部通过

以及 输出应该包含“外部组中的第一个示例”

输出不应该包含“外部组中的第二个示例”

以及 输出不应该包含“嵌套组中的示例”。

两个示例 - 第一个示例在块内

我运行 rspec example_spec.rb:4 --format doc

那么 示例应该全部通过

以及 输出应该包含“外部组中的第一个示例”

输出不应该包含“外部组中的第二个示例”

以及 输出不应该包含“嵌套组中的示例”。

两个示例 - 第一个示例在结尾

我运行 rspec example_spec.rb:5 --format doc

那么 示例应该全部通过

以及 输出应该包含“外部组中的第一个示例”

输出不应该包含“外部组中的第二个示例”

以及 输出不应该包含“嵌套组中的示例”。

两个示例 - 第一个示例在结尾之后,但在下一个示例之前

我运行 rspec example_spec.rb:6 --format doc

那么 示例应该全部通过

以及 输出应该包含“外部组中的第一个示例”

输出不应该包含“外部组中的第二个示例”

以及 输出不应该包含“嵌套组中的示例”。

两个示例 - 第二个示例在声明行上

我运行 rspec example_spec.rb:7 --format doc

那么 示例应该全部通过

以及 输出应该包含“外部组中的第二个示例”

输出不应该包含“外部组中的第一个示例”

以及 输出不应该包含“嵌套组中的示例”。

两个示例 - 第二个示例在块内

我运行 rspec example_spec.rb:7 --format doc

那么 示例应该全部通过

以及 输出应该包含“外部组中的第二个示例”

输出不应该包含“外部组中的第一个示例”

以及 输出不应该包含“嵌套组中的示例”。

两个示例 - 第二个示例在结尾

我运行 rspec example_spec.rb:7 --format doc

那么 示例应该全部通过

以及 输出应该包含“外部组中的第二个示例”

输出不应该包含“外部组中的第一个示例”

以及 输出不应该包含“嵌套组中的示例”。

为不同的文件多次指定

我运行 rspec example_spec.rb:7 example2_spec.rb:4 --format doc

那么 示例应该全部通过

以及 输出应该包含“外部组中的第二个示例”

以及 输出应该包含“第二个文件中的第二个示例”

输出不应该包含“外部组中的第一个示例”

以及 输出不应该包含“嵌套组”

以及 输出不应该包含“第二个文件中的第一个示例”。

为同一个文件多次指定,使用多个参数

我运行 rspec example_spec.rb:7 example_spec.rb:11 --format doc

那么 示例应该全部通过

以及 输出应该包含“外部组中的第二个示例”

以及 输出应该包含“嵌套组”

输出不应该包含“外部组中的第一个示例”

以及 输出不应该包含“第二个文件”。

为同一个文件多次指定,使用单个参数

我运行 rspec example_spec.rb:7:11 --format doc

那么 示例应该全部通过

以及 输出应该包含“外部组中的第二个示例”

以及 输出应该包含“嵌套组”

输出不应该包含“外部组中的第一个示例”

以及 输出不应该包含“第二个文件”。

匹配单行

我运行 rspec one_liner_spec.rb:3 --format doc

那么 示例应该全部通过

那么 输出应该包含“预期为 > 8”

输出不应该包含“预期为 < 10”。