2010-11-03 8 views
12

J'essaie d'exécuter un test sur un serveur distant. i.e:comment exécuter un test Capybara autonome?

require 'rubygems' 
require 'capybara' 
require 'capybara/dsl' 

Capybara.default_driver = :selenium 
Capybara.app_host = 'http://www.google.com' 


module MyCapybaraTest 
    include Capybara 

    def test_google 
    visit('/') 
    end 
end 

question, comment l'exécutez-vous?

Répondre

18

Enregistrer

require 'rubygems' 
require 'capybara' 
require 'capybara/dsl' 

Capybara.run_server = false 
Capybara.current_driver = :selenium 
Capybara.app_host = 'http://www.google.com' 

module MyCapybaraTest 
    class Test 
    include Capybara::DSL 
    def test_google 
     visit('/') 
    end 
    end 
end 

t = MyCapybaraTest::Test.new 
t.test_google 

à test.rb et simplement: ruby test.rb

+1

Bonne réponse. Cela fonctionne comme il est pour moi avec capybara (0.4.1.2) et capybara-webkit (0.5.0) sous Ruby 1.9.3. –

+3

De même, pour exécuter ce type de test sans tête, utilisez la gemme 'capybara-mechanize'. Ajoutez 'require 'capybara/mechanize'' et' Capybara.current_driver =: mechanize' au code. –

+1

Fonctionne également avec les versions les plus récentes: capybara-1.1.2 et capybara-webkit 0.11.0 –

0

J'ai trouvé ce truc de concombre autonome à l'aide du pilote de sélénium il y a quelques jours et l'avons installé et opérationnel en quelques minutes:

https://github.com/thuss/standalone-cucumber

J'ai dû faire quelques mods:

Mon Gemfile est

source "http://rubygems.org" 

group(:test) do 
    gem 'cucumber' 
    gem 'capybara' 
    gem 'rspec' 
    gem 'selenium-webdriver', '2.5.0' 
end 

Et voici ma env.rb

begin require 'rspec/expectations'; rescue LoadError; require 'spec/expectations'; end 
require 'capybara' 
require 'capybara/dsl' 
require 'capybara/cucumber' 
require 'selenium-webdriver' 

Capybara.default_driver = :selenium 
Capybara.app_host = 'http://something' 
World(Capybara) 
Questions connexes