Мой VCR конфигурации является:Видеомагнитофон Обмен сообщениями между кассетами?
VCR.configure do |c|
c.configure_rspec_metadata!
c.cassette_library_dir = 'spec/cassettes'
c.hook_into :webmock
c.ignore_localhost = true
end
И тестовый пример:
it "creates a build", :vcr => {:cassette_name => "build/feature/create"} do
visit new_build_path(build)
fill_in("build_name", :with => "Test Build")
click_button("Create Build")
build = Build.first
page.should have_content("Build was successfully created.")
current_path.should == build_path(hub)
end
При выполнении этого теста он взывает к нескольким третьей партии API, который запрашивает регистрируются через видеомагнитофон. Проблема, с которой я сталкиваюсь, заключается в том, что, по-видимому, видеомагнитофон использует запросы от других кассет во время работы, что вызывает прерывистые сбои для определенных тестов. Я проверил кассеты, и иногда (в зависимости от того, как это выглядит) все запросы будут записаны и воспроизведены отлично. Стоит отметить, что это когда весь пакет запущен, они всегда работают, когда запускаются сами по себе. Я не разделяю кассеты между спецификациями, которые терпят неудачу, единственное, что разделяется, - это некоторые распространенные запросы к API, и я заставляю имена кассет только для того, чтобы убедиться, что они используют правильные. Я надеюсь, что это имеет смысл ...
Мой главный вопрос - что может быть причиной этой проблемы? При использовании record => :new_episodes
тесты работают отлично, но не при использовании режима record => :once
. Это может быть хорошо, учитывая ситуацию, но я хочу убедиться, что я не создаю ненужных запросов, и из моего понимания record => :once
должен работать, учитывая, что запросы для каждой спецификации должны быть изолированы.
Я знаю, что это может быть трудно ответить без дополнительной информации, поэтому дайте мне знать, если кто-нибудь поможет. Заранее спасибо!
Что это? Водосвинка? – pguardiario
Да, я использую capybara и драйвер poltergeist для тестов на основе JS. –
. Вы должны упомянуть об этом и пометить свой вопрос правильно или вы не получите хороший ответ. – pguardiario