![](/img/trans.png)
[英]How can I access the default webdriver for Selenium 2 with Rails 3 Rspec and Capybara?
[英]How to set up Github CI for Rails + Rspec + Capybara & Selenium Webdrivers for a multi domain app?
在 Github 的 CI 上運行時,我得到一個SocketError: getaddrinfo: Name or service not known
when trying to visit a page。
2.1) Failure/Error: visit '/'
SocketError:
getaddrinfo: Name or service not known
# /usr/share/rvm/gems/ruby-2.5.5/gems/capybara-3.33.0/lib/capybara/server.rb:110:in `initialize'
# /usr/share/rvm/gems/ruby-2.5.5/gems/capybara-3.33.0/lib/capybara/server.rb:110:in `new'
# /usr/share/rvm/gems/ruby-2.5.5/gems/capybara-3.33.0/lib/capybara/server.rb:110:in `find_available_port'
# /usr/share/rvm/gems/ruby-2.5.5/gems/capybara-3.33.0/lib/capybara/server.rb:37:in `initialize'
# /usr/share/rvm/gems/ruby-2.5.5/gems/capybara-3.33.0/lib/capybara/session.rb:93:in `new'
# /usr/share/rvm/gems/ruby-2.5.5/gems/capybara-3.33.0/lib/capybara/session.rb:93:in `initialize'
# /usr/share/rvm/gems/ruby-2.5.5/gems/capybara-3.33.0/lib/capybara.rb:424:in `new'
# /usr/share/rvm/gems/ruby-2.5.5/gems/capybara-3.33.0/lib/capybara.rb:424:in `block in session_pool'
# /usr/share/rvm/gems/ruby-2.5.5/gems/capybara-3.33.0/lib/capybara.rb:315:in `current_session'
# /usr/share/rvm/gems/ruby-2.5.5/gems/capybara-3.33.0/lib/capybara/dsl.rb:46:in `page'
# /usr/share/rvm/gems/ruby-2.5.5/gems/capybara-3.33.0/lib/capybara/dsl.rb:58:in `block (2 levels) in <module:DSL>'
# ./spec/system/register_system_spec.rb:8:in `block (3 levels) in <main>'
2.2) Failure/Error: server = TCPServer.new(host, 0)
SocketError:
getaddrinfo: Name or service not known
# /usr/share/rvm/gems/ruby-2.5.5/gems/capybara-3.33.0/lib/capybara/server.rb:110:in `initialize'
# /usr/share/rvm/gems/ruby-2.5.5/gems/capybara-3.33.0/lib/capybara/server.rb:110:in `new'
# /usr/share/rvm/gems/ruby-2.5.5/gems/capybara-3.33.0/lib/capybara/server.rb:110:in `find_available_port'
# /usr/share/rvm/gems/ruby-2.5.5/gems/capybara-3.33.0/lib/capybara/server.rb:37:in `initialize'
# /usr/share/rvm/gems/ruby-2.5.5/gems/capybara-3.33.0/lib/capybara/session.rb:93:in `new'
# /usr/share/rvm/gems/ruby-2.5.5/gems/capybara-3.33.0/lib/capybara/session.rb:93:in `initialize'
# /usr/share/rvm/gems/ruby-2.5.5/gems/capybara-3.33.0/lib/capybara.rb:424:in `new'
# /usr/share/rvm/gems/ruby-2.5.5/gems/capybara-3.33.0/lib/capybara.rb:424:in `block in session_pool'
# /usr/share/rvm/gems/ruby-2.5.5/gems/capybara-3.33.0/lib/capybara.rb:315:in `current_session'
# /usr/share/rvm/gems/ruby-2.5.5/gems/capybara-3.33.0/lib/capybara/dsl.rb:46:in `page'
# /usr/share/rvm/gems/ruby-2.5.5/gems/actionpack-5.2.4.2/lib/action_dispatch/system_testing/test_helpers/screenshot_helper.rb:54:in `save_image'
# /usr/share/rvm/gems/ruby-2.5.5/gems/actionpack-5.2.4.2/lib/action_dispatch/system_testing/test_helpers/screenshot_helper.rb:25:in `take_screenshot'
# /usr/share/rvm/gems/ruby-2.5.5/gems/actionpack-5.2.4.2/lib/action_dispatch/system_testing/test_helpers/screenshot_helper.rb:37:in `take_failed_screenshot'
# /usr/share/rvm/gems/ruby-2.5.5/gems/actionpack-5.2.4.2/lib/action_dispatch/system_testing/test_helpers/setup_and_teardown.rb:21:in `after_teardown'
使用rspec
和selenium_google_chrome_headless
或selenium_google_chrome
在我的本地環境中正確運行測試。
before { Capybara.app_host = "http://#{subdomain}.myapp.test" }
gem 'rails', '~> 5.2.4'
gem 'rspec-rails', '~> 3.8'
capybara (3.33.0)
webdrivers (4.4.1)
selenium-webdriver (3.142.7)
env:
RUBY_VERSION: 2.5.5
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Start database
run: |
sudo systemctl start mysql
- name: Set up Ruby 2.5.5
run: |
sudo apt-add-repository -y ppa:rael-gc/rvm
sudo apt-get update
sudo apt-get -y install rvm
source /etc/profile.d/rvm.sh
rvm install ${{ env.RUBY_VERSION }}
- name: setup-chromedriver
uses: nanasess/setup-chromedriver@v1.0.1
- name: Build and test
env:
DATABASE_PASSWORD: root
run: |
source /etc/profile.d/rvm.sh
rvm use ${{ env.RUBY_VERSION }}
gem install bundler
bundle install --jobs 4 --retry 3
mysql -uroot -p${{ env.DATABASE_PASSWORD }} --execute="CREATE DATABASE myapp_test"
RAILS_ENV=test rails db:setup
bundle exec rspec spec/system
使用:headless_chrome 作為 javascript 瀏覽器,並在 spec/spec_helper.rb 中使用此配置
添加
Capybara.server = :puma
我的spec/rails_helper.rb
文件似乎解決了我的主要問題。
我的測試仍然沒有通過 Github 操作,但它看起來是一個不同的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.