1

以下のようなポルターガイストをドライバーとして使用して、まともなカピバラテストを数回実行したとき、

require 'spec_helper'

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

コンパイルされた JS ファイル (?) を読み取るときに、「マーシャル データが短すぎます」というエラーが発生し始めます。バックトレースは以下のようなものです。

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 ファイルを読み取るときに発生しているため、これは別の理由だと思います。

推測はありますか?

ref:マーシャリング データが短すぎます

4

1 に答える 1

28

rake tmp:clear は問題を解決しました。

tmp/sessions の下にファイルがなかったので、このコマンドは試しませんでしたが、キャッシュがこの問題を引き起こしているようです。

于 2013-10-03T08:44:39.703 に答える