当我用Poltergeist做了几次像下面这样的司机,做了一个像样的水豚测试,

require 'spec_helper'

  describe 'Capybara test', js: true do
    it 'works' do
      visit '/'
    end
  end

当读取编译的JS文件时,我开始得到一个错误“Marshal data too short”(?)是的。
回溯如下。
1) Capybara test works
   Failure/Error: Unable to find matching line from backtrace
   ActionView::Template::Error:
     marshal data too short
   # ./app/views/layouts/_javascripts.html.erb:7:in `_app_views_layouts__javascripts_html_erb__4483406095691079466_70112937186160'
   # ./app/views/layouts/application.html.erb:5:in `_app_views_layouts_application_html_erb__419483610520628071_70112936724940'
   # ./app/controllers/home_controller.rb:29:in `index'

./app/views/layouts/\ujavascripts.html.erb:7是
<%= javascript_include_tag 'application' %>

和./app/views/layouts/application.html.erb:5是
<%= render 'layouts/javascripts' %>

我看到有几个问题问为什么在创建ar对象时会发生这种情况(实际原因是会话数据太多),但我认为这是另一个原因,因为它是在读取js文件时发生的。
有什么猜测吗?
参考:marshal data too short

最佳答案

rake tmp:clear解决了这个问题。
因为tmp/sessions下没有文件,所以我没有尝试这个命令,但是缓存似乎触发了这个问题。

关于ruby-on-rails - 使用poltergeist多次执行 capybara 测试时出现“元数据太短”错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19154515/

10-10 02:57