Travis ci وSelenium-webdriver غير قادرين على الحصول على اتصال ثابت بفايرفوكس خلال 60 ثانية (127.0.0.1:7055)

StackOverflow https://stackoverflow.com//questions/21065812

سؤال

لدي مدونة أعمل عليها وأضفت بعض جافا سكريبت لجعل نموذج المدونة يظهر عند النقر فوق منشور جديد.كل شيء يعمل بشكل جيد.لقد أجريت اختبارات العمل مع minitest وcapybara وقمت بتثبيت برنامج تشغيل الويب Gem selenium-webdriver، وكل شيء يعمل بشكل جيد عندما اختبره محليًا.ومع ذلك، عندما أقوم بالدفع إلى Github ويأخذ travis-ci معلوماتي ويجري اختباراتي، فإنه يعطيني هذا الخطأ

unable to obtain stable firefox connection in 60 seconds (127.0.0.1:7055)

أنا في حيرة من أمري لأنني كنت أتلقى هذا الخطأ محليًا حتى قمت بالتحديث إلى برنامج Gem selenium-webdriver إلى الإصدار 2.39.0.لقد قمت للتو بتنزيل Firefox بقدر ما أعرف أن كل شيء محدث.هنا بعض ملفاتي إذا كان ذلك يساعد.

اختباري

feature "as a student I want a working blog so people can post" do
# this is line 10
  scenario "User can make a post", :js => true do
    dude_sign_up
    dude_log_in
    visit posts_path
    click_on "New Post"
    create_post
    page.must_have_content "Post was successfully created"
  end
# this is line 19

com.gemfile

group :development, :test do
  gem 'sqlite3'
  gem 'minitest-rails'
  gem 'launchy'
  gem 'coveralls', require: false
  gem 'minitest-rails-capybara'
  gem 'turn'
  gem 'pry'
  gem "selenium-webdriver", "~> 2.39.0"
end

ملف ترافيس.yml

language: ruby
rvm:
  - "2.0.0"
env:
  - DB=sqlite
script:
  - RAILS_ENV=test bundle exec rake db:migrate --trace
  - bundle exec rake db:test:prepare
  - rake minitest:features
bundler_args: --binstubs=./bundler_stubs

ملف مساعد الاختبار

require 'simplecov'
SimpleCov.start 'rails'
ENV["RAILS_ENV"] = "test"
require File.expand_path("../../config/environment", __FILE__)
require "rails/test_help"
require "minitest/rails"
require "minitest/rails/capybara"
require 'selenium-webdriver'
require 'coveralls'
Coveralls.wear!

# To add Capybara feature tests add `gem "minitest-rails-capybara"`
# to the test group in the Gemfile and uncomment the following:
# require "minitest/rails/capybara"

# Uncomment for awesome colorful output
# require "minitest/pride"

class ActiveSupport::TestCase
  # Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical order.
  fixtures :all

  # Add more helper methods to be used by all tests here...
end

class ActionDispatch::IntegrationTest
  include Rails.application.routes.url_helpers
  #include Capybara::RSpecMatchers
  include Capybara::DSL
end

Turn.config.format = :outline

def dude_sign_up
  visit new_user_path
  fill_in "Name", with: "thedude"
  fill_in "Email", with: "thedude@cool.com"
  fill_in "Password", with: 'password'
  fill_in "Bio", with: "the bio"
  fill_in "Password confirmation", with: 'password'
  click_on "Submit"
end

def dude_log_in
  visit new_session_path
  fill_in "Email", with: "thedude@cool.com"
  fill_in "Password", with: 'password'
  click_on "Log In"
end

def create_post
  fill_in "Title", with: "this is a test title"
  fill_in "Content", with: "oh how this is some crazzzzy content"
  click_on "Create Post"
end

ترافيس خطأ كامل

test_0002_User can make a post                            1:00:23.767 ERROR
        unable to obtain stable firefox connection in 60 seconds (127.0.0.1:7055)
        Exception `Selenium::WebDriver::Error::WebDriverError' at:
        /home/travis/.rvm/gems/ruby-2.0.0-p353/gems/selenium-webdriver-2.39.0/lib/selenium/webdriver/firefox/launcher.rb:79:in `connect_until_stable'
        /home/travis/.rvm/gems/ruby-2.0.0-p353/gems/selenium-webdriver-2.39.0/lib/selenium/webdriver/firefox/launcher.rb:37:in `block in launch'
        /home/travis/.rvm/gems/ruby-2.0.0-p353/gems/selenium-webdriver-2.39.0/lib/selenium/webdriver/firefox/socket_lock.rb:20:in `locked'
        /home/travis/.rvm/gems/ruby-2.0.0-p353/gems/selenium-webdriver-2.39.0/lib/selenium/webdriver/firefox/launcher.rb:32:in `launch'
        /home/travis/.rvm/gems/ruby-2.0.0-p353/gems/selenium-webdriver-2.39.0/lib/selenium/webdriver/firefox/bridge.rb:24:in `initialize'
        /home/travis/.rvm/gems/ruby-2.0.0-p353/gems/selenium-webdriver-2.39.0/lib/selenium/webdriver/common/driver.rb:31:in `new'
        /home/travis/.rvm/gems/ruby-2.0.0-p353/gems/selenium-webdriver-2.39.0/lib/selenium/webdriver/common/driver.rb:31:in `for'
        /home/travis/.rvm/gems/ruby-2.0.0-p353/gems/selenium-webdriver-2.39.0/lib/selenium/webdriver.rb:67:in `for'
        /home/travis/.rvm/gems/ruby-2.0.0-p353/gems/capybara-2.1.0/lib/capybara/selenium/driver.rb:11:in `browser'
        /home/travis/.rvm/gems/ruby-2.0.0-p353/gems/capybara-2.1.0/lib/capybara/selenium/driver.rb:43:in `visit'
        /home/travis/.rvm/gems/ruby-2.0.0-p353/gems/capybara-2.1.0/lib/capybara/session.rb:193:in `visit'
        /home/travis/.rvm/gems/ruby-2.0.0-p353/gems/capybara-2.1.0/lib/capybara/dsl.rb:51:in `block (2 levels) in <module:DSL>'
        test/test_helper.rb:35:in `dude_sign_up'
        test/features/blog_system_works_test.rb:12:in `block (2 levels) in <top (required)>'

هل يفهم أحد لماذا يعمل هذا محليًا ولكن ليس مع travis-ci؟

هل كانت مفيدة؟

المحلول

يا تقرر أنك أشارتني في الاتجاه الصحيح؛ومع ذلك، وجدت أن المشكلة كانت في ملف .travis.yml الخاص بي

إذا ذهبت إلى

http://karma-runner.ibithub.iy/0.8/Plus / Travis-ci.html

سوف يخبرونك أنه لإعداد ترافيس لاستخدام فايرفوكس تحتاج إلى إضافة

giveacodicetagpre.

إلى ملف ترافيس الخاص بك.

بعد تغيير ملف .travis.yml الخاص بي إلى

giveacodicetagpre.

كل شيء يعمل بشكل جيد مع ترافيس

نصائح أخرى

حاول الإعداد transactional_fixture ل false في الخاص بك rspec_spec.rb:

config.use_transactional_fixtures = false
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top