2013-04-22 20 views
1

我的測試設置非常好地運行,正常情況下,只要我在測試中調用save_and_open_page,就可以使用CSS正確格式化頁面。然後,我設置了一些javascript測試,並對我的設置進行了一些更改(對不起,我無法詳細說明它們 - 我沒有足夠的文檔記錄)。當我調用save_and_open_page時,我現在在瀏覽器中得到未格式化的html。save_and_open_page已停止向我的css提供服務

這裏是我的規格/ spec_helper.rb

require 'rubygems' 
require 'spork' 

Spork.prefork do 

    ENV["RAILS_ENV"] ||= 'test' 
    require File.expand_path("../../config/environment", __FILE__) 
    require 'rspec/rails' 
    require 'rspec/autorun' 
    require 'capybara/rspec' 
    require 'factory_girl' 
    Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f} 
    RSpec.configure do |config| 
    config.fixture_path = "#{::Rails.root}/spec/fixtures" 
    config.add_setting(:seed_tables) 
    config.seed_tables = %w(notifications drug_names drug_modes drug_prefs db_tables db_columns column_values) 
    config.use_transactional_fixtures = false 
    config.before(:suite) do 
     DatabaseCleaner.strategy = :truncation, {except: config.seed_tables} 
    end 
    config.before(:each) do 
     DatabaseCleaner.start 
    end 
    config.after(:each) do 
     DatabaseCleaner.clean 
    end 
    config.infer_base_class_for_anonymous_controllers = false 
    config.include Features::SessionHelpers, type: :feature 
    config.order = "random" 
    end 
    Spork.each_run do 
    FactoryGirl.reload 
    end 
end 

我已經安裝在我的測試環境下的寶石;

gem 'rspec-rails', '2.13.0' 
gem 'guard-rspec', '2.4.1' 
gem 'rb-fsevent', '0.9.3' 
gem 'terminal-notifier-guard', '1.5.3' 
gem 'guard-spork', '1.5.0' 
gem 'spork', '0.9.2' 
gem 'capybara', '2.1.0' 
gem 'timecop', '0.5.9.2' 
gem 'launchy', '2.2.0' 
gem 'factory_girl_rails', '4.2.1' 
gem 'shoulda', '3.3.2' 
gem 'faker', '1.1.2' 
gem 'database_cleaner', '0.9.1' 
gem 'selenium-webdriver', '2.32.1' 

任何線索,我已經做了什麼來阻止它正常工作?

回答

4

這是從水豚取出,在pull 609

Jnicklas:

我在這裏作出的行政決定憑藉我的地位 仁慈的獨裁者的水豚的生活:

資產重寫已經結束了。這是嚴重的整個Capybara代碼庫的最糟糕的部分 。這是一個可怕的黑客,從來沒有工作 正確的擺在首位,它給我們的輕鬆的好處可以很容易地通過優越的調試方法來實現,例如在Selenium中運行相同的測試 並通過例如執行停止執行。睡覺,得到或綁定。

對不起,如果這讓你們中的一些人感到不適,但是我的工作就是讓我們的工作難以做出關於什麼和什麼都沒有的決定。如果我不做 那份工作,只是簡單地接受一切,我們不會以最好的 結果結束。所以我希望你能接受這個決定,儘管你可能會不同意它。

根據Save_and_open_page not picking up scss markup,您可以考慮使用capybara-screenshot -gem製作屏幕截圖。

這個寶石將引入save_and_open_screenshot

然而,隨着jnicklas在拉請求的討論中提到有一個很好的理由不希望這一切的功能:

...因爲RackTest沒有CSS和JS,所以現在你看到的頁面與水豚的不同之處

10

只是一個供參考,save_and_open_page的作品禮貌這兩個鏈接的美好人物。 這是我在我的spec_helper的底部。RB,使其工作

# to allow CSS and Javascript to be loaded when we use save_and_open_page, the 
# development server must be running at localhost:3000 as specified below or 
# wherever you want. See original issue here: 
#https://github.com/jnicklas/capybara/pull/609 
# and final resolution here: 
#https://github.com/jnicklas/capybara/pull/958 
Capybara.asset_host = "http://localhost:3000" 

享受,感謝您sdhull和jnicklas和所有誰在它的工作

哈尼族

+0

簡單而有效的解決方案,謝謝 – 2014-08-03 15:21:59

+1

提示:請確保您有__DEVELOPMENT__服務器上運行,就像代碼註釋說的那樣!或者它會顯得什麼都不做。 :)(我第一次讀得太快了。) – talyric 2016-02-12 20:14:37