Заранее спасибо - я записываю спецификацию контроллера с помощью vcr.Кассета для записи видеомагнитофона не сохраняется
Проблема:
В первый раз я запускаю свою спецификацию, он записывает нормально, то я удалю my_spec_context_dir, повторно запустить спецификации, и кассета не сохраняются в кассетах реж!
Драгоценные камни:
gem 'rspec-rails', '~> 3.2.1'
gem 'webmock', '1.22.3', require: false
gem 'vcr'
gem 'capybara', '~> 2.4.3'
Спецификация:
#spec/controllers/my_spec.rb
require 'unit_spec_helper'
describe 'description' do
it 'example_name', :vcr do
@instance_var = table_record.attribute
get 'controller_action'
expect(response.status).to eq(200)
expect(response.content_type).to eq 'image/png'
table_record.delete
end
end
Что я пробовал:
Так что я смотрю на свои конфиги, чтобы убедиться, что КВМ следует записывать каждый раз его пробег:
#spec/unit_spec_helper.rb
require 'vcr'
if Rails.env.test?
VCR.configure do |c|
c.ignore_localhost = false
c.hook_into :webmock
c.cassette_library_dir = "spec/support/cassettes"
c.configure_rspec_metadata!
c.allow_http_connections_when_no_cassette = true
c.default_cassette_options = {
allow_playback_repeats: true,
serialize_with: :json,
record: :all,
match_requests_on: [:method, :uri, :headers]
}
c.debug_logger = File.open(Rails.root.join('log/vcr.log'), 'w')
end
end
- да, я думаю, вот что я хочу
Проверка vcr.log, я вижу, что кассета была записана:
[Cassette: 'MyController/description/example_name'] Initialized with options: {:record=>:new_episodes, :match_requests_on=>[:method, :uri, :headers], :allow_unused_http_interactions=>true, :serialize_with=>:json, :persist_with=>:file_system, :allow_playback_repeats=>true}
spec/support/cassettes
реж еще пуст, поэтому я расчистке кэш перед тестом ... Rails.cache.clear
и повторный запуск.
Обновление каталога spec/support/cassettes
, я вижу его все еще пустым. Что, по-вашему, не позволяет сохранить .yml?