Подтвердить что ты не робот

Пропустить тест RSpec во время выполнения

Я запускаю тесты RSpec против продукта веб-сайта, который существует на нескольких разных рынках. На каждом рынке есть тонко разные комбинации функций и т.д. Я бы хотел написать тесты, чтобы они пропускали себя во время выполнения в зависимости от того, на каком рынке/среде они работают. Тесты не должны терпеть неудачу при запуске на другом рынке и не должны проходить - они просто неприменимы.

К сожалению, кажется, что нет простого способа пометить тест как пропущенный. Как бы я это сделал, не пытаясь вставить "ожидающие" блоки (которые в любом случае не точны?)

4b9b3361

Ответ 1

Используйте фильтры .

describe "market a", :market => 'a' do
   ...
end
describe "market b", :market => 'b' do
   ...
end
describe "market c", :market => 'c' do
   ...
end

RSpec.configure do |c|
  # Set these up programmatically; 
  # I'm not sure how you're defining which market is 'active'
  c.filter_run_excluding :market => 'a'
  c.filter_run_excluding :market => 'b'
  # Now only tests with ":market => 'c'" will run.
end

Или еще лучше использовать неявные фильтры.

describe "market a", :if => CurrentMarket.a? do # or whatever
   ...
end