2013-04-22 4 views
1

Моя тестовая установка работала очень красиво, обслуживая страницы, правильно отформатированные с помощью css, когда я вызывал save_and_open_page из теста. Затем я настроил несколько тестов javascript и внес несколько изменений в свою настройку (извините, что не могу их подробно описать - я недостаточно хорошо документировал ситуацию). После внесения изменений я теперь получаю unformatted html в браузере, когда звоню save_and_open_page.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, так теперь вы видите страницу иначе, чем Capybara будет

10

Просто FYI, save_and_open_page работает любезно с замечательными людьми из этих 2 ссылок. Это то, что у меня есть в нижней части моего spec_helper.гь, чтобы заставить его работать

# 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

простым, но эффективным решением, благодаря –

+1

Совет: Убедитесь, что вы запустили __DEVELOPMENT__ сервер , как говорят комментарии к коду! Или, похоже, ничего не сделает. :) (я читал это слишком быстро в первый раз.) – talyric