Я написал некоторые спецификации функций для тестирования входа в систему через мое приложение rails, и спецификации все проходят локально, но они не работают, когда Travis CI запускает их. Вот пример:
1) User Registration User signs up with valid credentials
Failure/Error: fill_in 'Username', with: 'dannnnneh'
Capybara::ElementNotFound:
Unable to find field "Username"
# ./spec/features/registrations_controller_spec.rb:8:in `block (2 levels) in <top (required)>'
Я прочитал общие проблемы сборки для Travis CI для использования Capybara.default_wait_time = 15
; однако я либо помещаю это в неправильное место, либо не работает.
Пример spec:
scenario 'User signs up with valid credentials' do
Capybara.default_wait_time = 15
visit '/users/sign_up'
fill_in 'Username', with: 'dannnnneh'
...
ИЗМЕНИТЬ:
Я также попытался положить Capybara.default_wait_time = 15
в rails_helper.rb
, spec_helper.rb
, spec/support/capybara.rb
.
Я также добавил следующее к .travis.yml
из-за этого вопроса SO.
script:
- xvfb-run bundle exec rspec spec/features/*.rb
Однако это тоже не сработало.
Кто-нибудь знает, какой может быть проблема или как ее исправить?
EDIT:
Вот мой spec_helper.rb
:
require 'simplecov'
SimpleCov.start
require 'capybara'
require 'capybara/poltergeist'
Capybara.javascript_driver = :poltergeist
Capybara.register_driver :poltergeist do |app|
Capybara::Poltergeist::Driver.new(app, timeout: 15)
end
RSpec.configure do |config|
config.expect_with :rspec do |expectations|
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
end
config.mock_with :rspec do |mocks|
mocks.verify_partial_doubles = true
end
end