1

当我使用 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/_javascripts.html.erb:7 是

<%= javascript_include_tag 'application' %>

和 ./app/views/layouts/application.html.erb:5 是

<%= render 'layouts/javascripts' %>

我已经看到一些问题询问为什么在创建 AR 对象时会发生这种情况(实际原因是会话数据过多),但我认为这是一个不同的原因,因为它是在读取 JS 文件时发生的。

有什么猜测吗?

参考:编组数据太短

4

1 回答 1

28

rake tmp:clear 解决了这个问题。

由于 tmp/sessions 下没有文件,所以我没有尝试这个命令,但似乎是缓存触发了这个问题。

于 2013-10-03T08:44:39.703 回答