当我用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/