2

是否可以在 Rspec2 标签中包含条件逻辑,以便我可以运行标签小于或等于给定值的所有示例?

就像是:

  rspec Dummy_spec.rb --tag version:= <=2

显然,这是行不通的,但是否有一些 Ruby 魔法可以使这项工作?

这样做的原因是我想使用标签对我的 Rspec 示例进行版本控制。更具体地说,我希望能够过滤所有示例,其标记等于或小于我在运行示例时指定的标记值。

例如,如果我正在处理我的代码的第 2 版,但也开始使用第 3 版,那么我希望能够运行适用于我的代码的第 1 版和第 2 版的所有示例。但不是第 3 版。(请参见下面的代码示例)

期待一些回复,我的 rspec 示例与我的生产代码位于一个单独的项目中,因此使用代码对示例进行版本控制并不是一件简单的事情。但如果有更好的方法来处理这个问题,我愿意接受替代方案。

我想做的完整示例:

describe "using version as tags" do

  context "When I run 'rspec Dummy_spec.rb --tag version:2'"

  it "should run this test applicable to ver 1", :version =>1 do
    true.should eq(true)
  end

  it "should run this test applicable to ver 2", :version =>2 do
    true.should eq(true)
  end

  it "should not run this test applicable to ver 3", :version =>3 do
    true.should eq(true)
  end

end
4

1 回答 1

0

--tag 选项的Relish 页面说明您可以通过 排除标签~key:value,因此您应该能够运行rspec Dummy_spec.rb --tag ~version:3除版本 3 测试之外的所有内容。

于 2012-06-03T16:21:24.463 回答