В файле _spec.rb я настраиваю фильтр исключения примерно так:
RSpec.configure do |config|
# we need determine this once at the very front
# and the result be available in the instance
server_success = server1_available?
config.exclusion_filter = {
:svr1 => lambda {|what|
case what
when :available
!server_success
end
}
}
end
, а потом в файле я делаю
describe :get_items_by_client, :svr1 => :available do
для предотвращения выполнения теста, если сервер недоступен.
Это все работает нормально, если я запускаю один файл спецификации. Тем не менее, у меня есть подобный код в другом файле, управляющий тестами, которые обращаются к другому серверу, и когда я запускаю их все только, я вижу, что каждая из проверок сервера выполнена (у меня есть путы в коде «serverX_available?»), Но только исключается один набор тестов (хотя ни один из серверов не доступен).
Я начинаю думать, что у вас может быть только один фильтр исключения, но я могу найти любые документы в любом месте, которые говорят об этом. Это выполнимо для каждого файла? Я мог бы иметь один сложный фильтр в файле поддержки, но как мне включить его, когда я выполняю всего лишь один файл спецификации?
В идеале, я хотел бы найти форму, которая работает для каждого файла, но позвольте мне сделать проверку доступности один раз, так как это довольно дорогая проверка, и у меня есть несколько примеров в тесте, которые контролируются этим.