Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 使用Rails 4和selenium web驱动程序,可以在Travis CI上使用Sauce Labs,但不能在本地使用_Ruby On Rails 4_Selenium Webdriver_Rspec Rails_Travis Ci_Saucelabs - Fatal编程技术网

Ruby on rails 4 使用Rails 4和selenium web驱动程序,可以在Travis CI上使用Sauce Labs,但不能在本地使用

Ruby on rails 4 使用Rails 4和selenium web驱动程序,可以在Travis CI上使用Sauce Labs,但不能在本地使用,ruby-on-rails-4,selenium-webdriver,rspec-rails,travis-ci,saucelabs,Ruby On Rails 4,Selenium Webdriver,Rspec Rails,Travis Ci,Saucelabs,我正在填写一个开源Rails项目的规范,需要在浏览器中运行该应用程序以获取我的一些功能规范。我想在Travis CI上使用沙司实验室,但不必重写我的规范,也可以在本地使用沙司实验室,因为: 我不想在开发期间必须连接到互联网才能运行我的规范 使规范依赖于Sauce Labs将使贡献者不可能在不设置自己的Sauce Labs帐户和环境变量的情况下自行运行规范 我找不到详细说明此场景的文档。实现这一目标的最佳方式是什么?对于那些有类似需求的人,我最后做的就是: .travis.yml: env:

我正在填写一个开源Rails项目的规范,需要在浏览器中运行该应用程序以获取我的一些功能规范。我想在Travis CI上使用沙司实验室,但不必重写我的规范,也可以在本地使用沙司实验室,因为:

  • 我不想在开发期间必须连接到互联网才能运行我的规范
  • 使规范依赖于Sauce Labs将使贡献者不可能在不设置自己的Sauce Labs帐户和环境变量的情况下自行运行规范

  • 我找不到详细说明此场景的文档。实现这一目标的最佳方式是什么?

    对于那些有类似需求的人,我最后做的就是:

    .travis.yml

    env:
      global:
        - secure: "encrypted sauce username"
        - secure: "encrypted sauce secret key"
    
    addons:
      sauce_connect: true
    
    before_install:
      # install the ed text editor which we use to append 
      # file contents to a specific line of another file
      - sudo apt-get install -y ed
      # appends contents of travis/Gemfile.travis to Gemfile
      - cat travis/Gemfile.travis >> Gemfile
      # adds contents of travis/rails_helper.rb.travis to line 12 of spec/rails_helper.rb
      - ed -s spec/rails_helper.rb <<< '12r travis/rails_helper.rb.travis'$'\nw'
    
    group :test, :development do
      gem 'sauce', '~> 3.1.1'
      gem 'sauce-connect'
      gem 'parallel_tests'
    end
    
    require 'sauce'
    require 'sauce/capybara'
    
    # change to "Capybara.default_driver = :sauce" to use sauce 
    # for ALL feature specs, not just ones marked with "js: true"
    Capybara.javascript_driver = :sauce
    
    Sauce.config do |config|
      config[:browsers] = [
        ['Linux', 'Chrome', nil],
        # and other OS/browser combos you want to support...
      ]
    end
    
    env:
      global:
        - secure: "encrypted sauce username"
        - secure: "encrypted sauce secret key"
        - SAUCY: true
    
    addons:
      sauce_connect: true
    
    group :development, :test do
      # other gems...
      if ENV['SAUCY']
        # gems for sauce
        gem 'sauce', '~> 3.1.1'
        gem 'sauce-connect'
        gem 'parallel_tests'
      end
    end
    
    # after other requires
    if ENV['SAUCY']
      require 'sauce'
      require 'sauce/capybara'
    
      # change to "Capybara.default_driver = :sauce" to use sauce 
      # for ALL feature specs, not just ones marked with "js: true"
      Capybara.javascript_driver = :sauce
    
      Sauce.config do |config|
        config[:browsers] = [
          ['Linux', 'Chrome', nil],
          # and other OS/browser combos you want to support...
        ]
      end
    end
    
    travis/rails\u helper.rb.travis

    env:
      global:
        - secure: "encrypted sauce username"
        - secure: "encrypted sauce secret key"
    
    addons:
      sauce_connect: true
    
    before_install:
      # install the ed text editor which we use to append 
      # file contents to a specific line of another file
      - sudo apt-get install -y ed
      # appends contents of travis/Gemfile.travis to Gemfile
      - cat travis/Gemfile.travis >> Gemfile
      # adds contents of travis/rails_helper.rb.travis to line 12 of spec/rails_helper.rb
      - ed -s spec/rails_helper.rb <<< '12r travis/rails_helper.rb.travis'$'\nw'
    
    group :test, :development do
      gem 'sauce', '~> 3.1.1'
      gem 'sauce-connect'
      gem 'parallel_tests'
    end
    
    require 'sauce'
    require 'sauce/capybara'
    
    # change to "Capybara.default_driver = :sauce" to use sauce 
    # for ALL feature specs, not just ones marked with "js: true"
    Capybara.javascript_driver = :sauce
    
    Sauce.config do |config|
      config[:browsers] = [
        ['Linux', 'Chrome', nil],
        # and other OS/browser combos you want to support...
      ]
    end
    
    env:
      global:
        - secure: "encrypted sauce username"
        - secure: "encrypted sauce secret key"
        - SAUCY: true
    
    addons:
      sauce_connect: true
    
    group :development, :test do
      # other gems...
      if ENV['SAUCY']
        # gems for sauce
        gem 'sauce', '~> 3.1.1'
        gem 'sauce-connect'
        gem 'parallel_tests'
      end
    end
    
    # after other requires
    if ENV['SAUCY']
      require 'sauce'
      require 'sauce/capybara'
    
      # change to "Capybara.default_driver = :sauce" to use sauce 
      # for ALL feature specs, not just ones marked with "js: true"
      Capybara.javascript_driver = :sauce
    
      Sauce.config do |config|
        config[:browsers] = [
          ['Linux', 'Chrome', nil],
          # and other OS/browser combos you want to support...
        ]
      end
    end
    
    更新(2014/11/25): 最后,我在最终的解决方案中使用了稍微不同的配置。我不喜欢在行号处插入的脆弱性。我没有在单独的文件中包含特殊的酱汁,而是将特殊配置嵌套在条件中,这取决于环境变量
    SAUCY
    是否设置为true

    .travis.yml

    env:
      global:
        - secure: "encrypted sauce username"
        - secure: "encrypted sauce secret key"
    
    addons:
      sauce_connect: true
    
    before_install:
      # install the ed text editor which we use to append 
      # file contents to a specific line of another file
      - sudo apt-get install -y ed
      # appends contents of travis/Gemfile.travis to Gemfile
      - cat travis/Gemfile.travis >> Gemfile
      # adds contents of travis/rails_helper.rb.travis to line 12 of spec/rails_helper.rb
      - ed -s spec/rails_helper.rb <<< '12r travis/rails_helper.rb.travis'$'\nw'
    
    group :test, :development do
      gem 'sauce', '~> 3.1.1'
      gem 'sauce-connect'
      gem 'parallel_tests'
    end
    
    require 'sauce'
    require 'sauce/capybara'
    
    # change to "Capybara.default_driver = :sauce" to use sauce 
    # for ALL feature specs, not just ones marked with "js: true"
    Capybara.javascript_driver = :sauce
    
    Sauce.config do |config|
      config[:browsers] = [
        ['Linux', 'Chrome', nil],
        # and other OS/browser combos you want to support...
      ]
    end
    
    env:
      global:
        - secure: "encrypted sauce username"
        - secure: "encrypted sauce secret key"
        - SAUCY: true
    
    addons:
      sauce_connect: true
    
    group :development, :test do
      # other gems...
      if ENV['SAUCY']
        # gems for sauce
        gem 'sauce', '~> 3.1.1'
        gem 'sauce-connect'
        gem 'parallel_tests'
      end
    end
    
    # after other requires
    if ENV['SAUCY']
      require 'sauce'
      require 'sauce/capybara'
    
      # change to "Capybara.default_driver = :sauce" to use sauce 
      # for ALL feature specs, not just ones marked with "js: true"
      Capybara.javascript_driver = :sauce
    
      Sauce.config do |config|
        config[:browsers] = [
          ['Linux', 'Chrome', nil],
          # and other OS/browser combos you want to support...
        ]
      end
    end
    
    Gemfile

    env:
      global:
        - secure: "encrypted sauce username"
        - secure: "encrypted sauce secret key"
    
    addons:
      sauce_connect: true
    
    before_install:
      # install the ed text editor which we use to append 
      # file contents to a specific line of another file
      - sudo apt-get install -y ed
      # appends contents of travis/Gemfile.travis to Gemfile
      - cat travis/Gemfile.travis >> Gemfile
      # adds contents of travis/rails_helper.rb.travis to line 12 of spec/rails_helper.rb
      - ed -s spec/rails_helper.rb <<< '12r travis/rails_helper.rb.travis'$'\nw'
    
    group :test, :development do
      gem 'sauce', '~> 3.1.1'
      gem 'sauce-connect'
      gem 'parallel_tests'
    end
    
    require 'sauce'
    require 'sauce/capybara'
    
    # change to "Capybara.default_driver = :sauce" to use sauce 
    # for ALL feature specs, not just ones marked with "js: true"
    Capybara.javascript_driver = :sauce
    
    Sauce.config do |config|
      config[:browsers] = [
        ['Linux', 'Chrome', nil],
        # and other OS/browser combos you want to support...
      ]
    end
    
    env:
      global:
        - secure: "encrypted sauce username"
        - secure: "encrypted sauce secret key"
        - SAUCY: true
    
    addons:
      sauce_connect: true
    
    group :development, :test do
      # other gems...
      if ENV['SAUCY']
        # gems for sauce
        gem 'sauce', '~> 3.1.1'
        gem 'sauce-connect'
        gem 'parallel_tests'
      end
    end
    
    # after other requires
    if ENV['SAUCY']
      require 'sauce'
      require 'sauce/capybara'
    
      # change to "Capybara.default_driver = :sauce" to use sauce 
      # for ALL feature specs, not just ones marked with "js: true"
      Capybara.javascript_driver = :sauce
    
      Sauce.config do |config|
        config[:browsers] = [
          ['Linux', 'Chrome', nil],
          # and other OS/browser combos you want to support...
        ]
      end
    end
    
    规范/rails\u helper.rb

    env:
      global:
        - secure: "encrypted sauce username"
        - secure: "encrypted sauce secret key"
    
    addons:
      sauce_connect: true
    
    before_install:
      # install the ed text editor which we use to append 
      # file contents to a specific line of another file
      - sudo apt-get install -y ed
      # appends contents of travis/Gemfile.travis to Gemfile
      - cat travis/Gemfile.travis >> Gemfile
      # adds contents of travis/rails_helper.rb.travis to line 12 of spec/rails_helper.rb
      - ed -s spec/rails_helper.rb <<< '12r travis/rails_helper.rb.travis'$'\nw'
    
    group :test, :development do
      gem 'sauce', '~> 3.1.1'
      gem 'sauce-connect'
      gem 'parallel_tests'
    end
    
    require 'sauce'
    require 'sauce/capybara'
    
    # change to "Capybara.default_driver = :sauce" to use sauce 
    # for ALL feature specs, not just ones marked with "js: true"
    Capybara.javascript_driver = :sauce
    
    Sauce.config do |config|
      config[:browsers] = [
        ['Linux', 'Chrome', nil],
        # and other OS/browser combos you want to support...
      ]
    end
    
    env:
      global:
        - secure: "encrypted sauce username"
        - secure: "encrypted sauce secret key"
        - SAUCY: true
    
    addons:
      sauce_connect: true
    
    group :development, :test do
      # other gems...
      if ENV['SAUCY']
        # gems for sauce
        gem 'sauce', '~> 3.1.1'
        gem 'sauce-connect'
        gem 'parallel_tests'
      end
    end
    
    # after other requires
    if ENV['SAUCY']
      require 'sauce'
      require 'sauce/capybara'
    
      # change to "Capybara.default_driver = :sauce" to use sauce 
      # for ALL feature specs, not just ones marked with "js: true"
      Capybara.javascript_driver = :sauce
    
      Sauce.config do |config|
        config[:browsers] = [
          ['Linux', 'Chrome', nil],
          # and other OS/browser combos you want to support...
        ]
      end
    end
    
    通过这种方式,如果我选择与以下产品搭配,我也可以轻松地在当地使用酱汁:

    SAUCY=true bundle install
    SAUCY=true SAUCE_USERNAME=username SAUCE_ACCESS_KEY=access_key bundle exec rspec
    

    我是酱汁宝石的维护者;我喜欢这个只在Travis身上使用酱汁的解决方案![Sauce Gem Wiki]()上有一个迷你指南,用于使用环境变量交换Sauce的输入和输出;在Travis上,可以使用“Travis”环境变量。