我写了一些功能规格来测试通过我的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)>'
我在common build problems for Travis CI上阅读使用Capybara.default_wait_time = 15;但是,我或者把它放在错误的地方,否则就不行.
示例说明:
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中.
由于this SO问题,我还将以下内容添加到.travis.yml中.
script: - xvfb-run bundle exec rspec spec/features/*.rb
但是,这也不行.
有人知道这个问题可能是什么,还是怎么解决呢?
编辑:
这是我的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
解决方法
你能发布你的spec_helper吗此外,官方文档还提供了另一种配置xvfb的方法,是否已经检查了
http://docs.travis-ci.com/user/gui-and-headless-browsers/?