Капибара Скриншот отформатирован - PullRequest
1 голос
/ 15 февраля 2020

Мои скриншоты на Capybara выглядят глупо - к ним не применяются таблицы стилей.

и, похоже, снимки экрана создаются не точно после возникновения ошибки: при создании ошибки вручную я вижу различные виды, открываемые gem.

что мне нужно настроить?

вот мои spec/rails_helper.rb rails-6.1 и rails s -p 3000 работает параллельно с тестами

require 'spec_helper'
ENV['RAILS_ENV'] ||= 'test'

require File.expand_path('../config/environment', __dir__)

abort("The Rails environment is running in production mode!") if Rails.env.production?
require 'rspec/rails'

require 'capybara/rspec'
require 'capybara-screenshot/rspec'
#Capybara.server = :puma
Capybara.asset_host = "http://localhost:3000/"
Capybara::Screenshot.after_save_html do |path|
  `open #{path}`
end
Capybara::Screenshot.prune_strategy = :keep_last_run

begin
  ActiveRecord::Migration.maintain_test_schema!
rescue ActiveRecord::PendingMigrationError => e
  puts e.to_s.strip
  exit 1
end
RSpec.configure do |config|
  config.fixture_path = "#{::Rails.root}/spec/fixtures"
  config.use_transactional_fixtures = true
  config.infer_spec_type_from_file_location!
  config.filter_rails_from_backtrace!
end

Gemfile:

group :test do
  gem 'capybara', '>= 2.15'
  gem 'selenium-webdriver'
  gem 'webdrivers'
  gem 'capybara-screenshot'
end
group :development, :test do
  gem 'rspec-rails', '~> 3.9'
end

в выходном файле, первая строка ist

<html class="no-js" lang="en"><!--<![endif]--><head><base href='http://localhost:3000/' />

, поэтому, похоже, что снимок экрана-капибары проверил css https://github.com/mattheworiordan/capybara-screenshot#better -looking- html -скриншоты

Спасибо за помощь!

1 Ответ

1 голос
/ 15 февраля 2020

Есть ли конкретная c причина, по которой вы смотрите HTML "снимки экрана" вместо снимков экрана jpg? Эти HTML никогда не будут полностью корректными, и в действительности должны использоваться только для проверки структуры HTML, а не для текущих значений / состояния. Причина этого в том, что он сохраняет HTML и атрибуты, но не может сохранить свойства JS каждого элемента, поэтому не сохраняет текущее состояние флажков и т. Д. c. Снимки экрана jpg, с другой стороны, представляют собой изображение того, что на самом деле отображал браузер. Что касается того, почему версии HTML не будут загружать CSS, взгляните на источник файла и убедитесь, что элемент <base> правильно вводится в элемент <head> страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...