我有一个测试套件,可以运行多个版本的软件应用程序。我希望能够标记那些根据不同版本而变化的测试,以便我设置的过滤器只运行此特定版本的测试。
我正在寻找类似的东西:
describe "the magic page", :version=>["all-magic", "some_magic"]
it "exists!"
end
describe "the magic page", :version=>["no-magic"]
it "does not exist!"
end
Rspec.configure do |config|
this_version= some_version_parameter_passed_in || "no_magic"
config.filter_run :version includes this_version
end
显然,这不起作用,但它应该让你知道我想要完成的事情。
答案 0 :(得分:1)
你可以用Rspec实际做到这一点。看看docs,尝试这样的事情:
describe "the magic page", :all-magic => true, :some-magic => true
it "exists!"
end
describe "the magic page", :no-magic => true
it "does not exist!"
end
然后使用魔术标签运行测试,您可以使用命令:
rspec --tag magic
或者您可以修改.rspec
:
--tag magic
这对你有用吗?
答案 1 :(得分:1)
您可以在过滤器中使用lambdas,如下所示:
config.filter_run_including :foo => lambda {|v| v == 'bar'}
所以你可以做类似
的事情config.filter_run_including :version => lambda {|v| v.include? current_version}
或者只运行带有正确版本的测试版本(我认为这是您正在寻找的),
config.filter_run_excluding :version => lambda {|v| !v.include? current_version}