Codeship在rails-devise-roles测试中断

问题描述:

在Codeship的CI中运行时,rails-devise-roles应用程序的Selenium测试user-delete-spec.rbuser-edit-spec.rb似乎中断。 rspec在我的本地机器上正常工作,但在Codeship中中断。Codeship在rails-devise-roles测试中断

RSpec的输出,我得到如下:

Failures: 

1) User delete user can delete own account 
Failure/Error: visit edit_user_registration_path(user) 

Selenium::WebDriver::Error::ServerError: 
    status code 500 
# /home/rof/cache/bundler/ruby/2.3.0/gems/selenium-webdriver-3.4.0/lib/selenium/webdriver/remote/response.rb:72:in `assert_ok' 
# /home/rof/cache/bundler/ruby/2.3.0/gems/selenium-webdriver-3.4.0/lib/selenium/webdriver/remote/response.rb:32:in `initialize' 
# /home/rof/cache/bundler/ruby/2.3.0/gems/selenium-webdriver-3.4.0/lib/selenium/webdriver/remote/http/common.rb:83:in `new' 
# /home/rof/cache/bundler/ruby/2.3.0/gems/selenium-webdriver-3.4.0/lib/selenium/webdriver/remote/http/common.rb:83:in `create_response' 
# /home/rof/cache/bundler/ruby/2.3.0/gems/selenium-webdriver-3.4.0/lib/selenium/webdriver/remote/http/default.rb:107:in `request' 
# /home/rof/cache/bundler/ruby/2.3.0/gems/selenium-webdriver-3.4.0/lib/selenium/webdriver/remote/http/common.rb:61:in `call' 
# /home/rof/cache/bundler/ruby/2.3.0/gems/selenium-webdriver-3.4.0/lib/selenium/webdriver/remote/w3c_bridge.rb:640:in `execute' 
# /home/rof/cache/bundler/ruby/2.3.0/gems/selenium-webdriver-3.4.0/lib/selenium/webdriver/remote/w3c_bridge.rb:114:in `create_session' 
# /home/rof/cache/bundler/ruby/2.3.0/gems/selenium-webdriver-3.4.0/lib/selenium/webdriver/remote/w3c_bridge.rb:76:in `initialize' 
# /home/rof/cache/bundler/ruby/2.3.0/gems/selenium-webdriver-3.4.0/lib/selenium/webdriver/firefox/w3c_bridge.rb:45:in `initialize' 
# /home/rof/cache/bundler/ruby/2.3.0/gems/selenium-webdriver-3.4.0/lib/selenium/webdriver/common/driver.rb:52:in `new' 
# /home/rof/cache/bundler/ruby/2.3.0/gems/selenium-webdriver-3.4.0/lib/selenium/webdriver/common/driver.rb:52:in `for' 
# /home/rof/cache/bundler/ruby/2.3.0/gems/selenium-webdriver-3.4.0/lib/selenium/webdriver.rb:88:in `for' 
# /home/rof/cache/bundler/ruby/2.3.0/gems/capybara-2.14.0/lib/capybara/selenium/driver.rb:22:in `browser' 
# /home/rof/cache/bundler/ruby/2.3.0/gems/capybara-2.14.0/lib/capybara/selenium/driver.rb:62:in `visit' 
# /home/rof/cache/bundler/ruby/2.3.0/gems/capybara-2.14.0/lib/capybara/session.rb:269:in `visit' 
# /home/rof/cache/bundler/ruby/2.3.0/gems/capybara-2.14.0/lib/capybara/dsl.rb:50:in `block (2 levels) in <module:DSL>' 
# ./spec/features/users/user_delete_spec.rb:21:in `block (2 levels) in <top (required)>' 

2) User edit user changes email address 
Failure/Error: visit edit_user_registration_path(user) 

Selenium::WebDriver::Error::ServerError: 
    status code 500 
# [removed stack trace] 

3) User edit user cannot cannot edit another user's profile 
Failure/Error: visit edit_user_registration_path(other) 

Selenium::WebDriver::Error::ServerError: 
    status code 500 
# [removed stack trace] 

Finished in 23.21 seconds (files took 2.99 seconds to load) 
31 examples, 3 failures 

Failed examples: 

rspec ./spec/features/users/user_delete_spec.rb:18 # User delete user can delete own account 
rspec ./spec/features/users/user_edit_spec.rb:18 # User edit user changes email address 
rspec ./spec/features/users/user_edit_spec.rb:45 # User edit user cannot cannot edit another user's profile 

这是失败的一个场景的例子:

scenario 'user can delete own account' do 
    # skip 'skip a slow test' [removed from the original file] 
    user = FactoryGirl.create(:user) 
    login_as(user, :scope => :user) 
    visit edit_user_registration_path(user) 
    click_button 'Cancel my account' 
    page.driver.browser.switch_to.alert.accept 
    expect(page).to have_content I18n.t 'devise.registrations.destroyed' 
end 

发生了什么事错在这里了,我哪有那么修改这个测试通过? (为了说明,我的本地部署在这些页面上没有任何错误,也没有关于基于rails-devise角色的应用程序的Heroku实时部署。)

已达到Codeship支持,谁是非常有帮助的,并告诉我,Firefox和Firefox的geckodriver都需要在Codeship VM上更新。如果其他人也有这个问题,这使得它的工作的代码如下:

export FIREFOX_VERSION=53.0.3 
curl -sSL https://raw.githubusercontent.com/codeship/scripts/master/packages/firefox.sh | bash -s 
export GECKODRIVER_VERSION=0.17.0 
source /dev/stdin <<< "$(curl -sSL https://raw.githubusercontent.com/codeship/scripts/master/languages/rust.sh)" 
curl -sSL https://raw.githubusercontent.com/codeship/scripts/master/packages/geckodriver.sh | bash -s 

巨大的道具乔西维特从Codeship支持团队获得此修复出来给我!