Драгоценный камень Ruby VCR отключает повторную запись, когда запись доступна

Я хочу записать ответ API один раз и использовать вечно, но похоже, что видеомагнитофон хочет перезаписать по истечении некоторого времени.

Я пытался гуглить, как его отключить. Нашел re_record_interval но похоже не работает.

Моя текущая настройка VCS: spec/support/vcr_setup.rb

# frozen_string_literal: true

VCR.configure do |c|
  c.cassette_library_dir = 'spec/vcr'
  c.hook_into :webmock
  c.configure_rspec_metadata!
  c.allow_http_connections_when_no_cassette = false
  c.default_cassette_options = {
    record: :none,
    re_record_interval: nil,
    match_requests_on: %i[method uri],
    allow_playback_repeats: true
  }
  c.debug_logger = $stdout
end

Это журнал отладки с видеомагнитофона

[Cassette: 'some-name./1:1:6:2:1:1'] Initialized with options: {:record=>:none, :record_on_error=>true, :match_requests_on=>[:method, :uri], :allow_unused_http_interactions=>true, :serialize_with=>:yaml, :persist_with=>:file_system, :re_record_interval=>nil, :allow_playback_repeats=>true}
Scraping url: some-url
[webmock] Handling request: [get some-url] (disabled: false)
  [Cassette: 'some-name/1:1:6:2:1:1'] Initialized HTTPInteractionList with request matchers [:method, :uri] and 0 interaction(s): {  }
[webmock] Identified request type (unhandled) for [get some-url]

Примечание. Имеется записанный файл, который был получен час назад, но теперь видеомагнитофон пытается выполнить новый HTTP-запрос и создать новый файл записи.


person Kshitij    schedule 16.04.2020    source источник


Ответы (1)


После некоторой отладки выяснилось, что имя файла vcr на самом деле было идентификатором области действия rpsec. Вы можете проверить метаданные rspec здесь, чтобы узнать, как выглядит идентификатор области. https://www.tutorialspoint.com/rspec/rspec_metadata.htm

scope_id — это что-то вроде "1:1:6:2:1:1", что означает 1-й блок > 1-й блок > 6-й блок и так далее. Вы поняли идею.

Это означает, что если вы измените порядок блоков в файле спецификаций, это также изменит записанный файл.

person Kshitij    schedule 16.04.2020