2015-10-26 105 views
6

我正在將我的水豚測試套件從capybara-webkit轉換爲poltergeist。Webfont路徑,rspec,水豚和poltergeist

-require 'capybara/webkit' 
+require 'capybara/poltergeist' 

-Capybara.javascript_driver = :webkit 
+Capybara.javascript_driver = :poltergeist 

在運行我的測試,第一次測試與此消息失敗...

Failure/Error: Unable to find matching line from backtrace 
ActionController::RoutingError: 
    No route matches [GET] "/assets/fonts/glyphicons-halflings-regular.ttf" 

經過一番研究,我發現類似的問題here

但是,我手動安裝了bootstrap.css。我按照第二個答案中的建議對路徑進行了調整,並且我收到了具有更新路徑的相同消息。

經過一段時間和挫折之後,我意識到只有我的套件中的第一個測試失敗了,其餘的都通過了。自然,我刪除了第一個測試。現在「新」第一次測試失敗,剩下的通過。所以我刪除了他們。現在,他們都沒有失敗!測試很簡單!結束。

什麼使我的第一次測試失敗?爲什麼其餘的路過?

更多信息請求。

+0

請後發生故障的規範。 – noname

回答

0

有這個

A.兩個可能的解決方案,您正在加載圖片,你可能並不想這樣做(加速試驗等)

Capybara.register_driver :poltergeist do |app| 
    Capybara::Poltergeist::Driver.new(app, 
    :timeout => 60, 
    :phantomjs_logger => File.open(File::NULL), # silence JavaScript console.log 
    :phantomjs_options => %w(--load-images=false --ignore-ssl-errors=true), 
) 
end 

B.該規範是失敗,因爲你越來越沒有發現該資產

# Gemfile 
gem 'bootstrap-sass' 

然後包括它在JavaScript 404降落

# assets/javascripts/application.js 
//= require bootstrap-sprockets 

然後將其包含在CSS土地

# assets/stylesheets/application.scss 
@import "bootstrap-sprockets"; 
@import "bootstrap";