Теги и фильтры Rspec - Несколько значений для фильтра? - PullRequest
1 голос
/ 29 ноября 2011

У меня есть набор тестов, который работает с несколькими версиями программного приложения. Я хотел бы иметь возможность пометить те тесты, которые различаются в зависимости от разных версий, чтобы настроенные мной фильтры запускали тесты только для этой конкретной версии.

Я ищу что-то вроде:

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

Очевидно, что это не работает, но это должно дать вам представление о том, чего я пытаюсь достичь.

Ответы [ 2 ]

1 голос
/ 14 апреля 2015

Вы можете использовать лямбды в своем фильтре следующим образом:

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}
1 голос
/ 29 ноября 2011

Вы можете сделать это с помощью Rspec.Взгляните на документы и попробуйте что-то вроде этого:

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

Это работает для вас?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...