Pure Ruby(レールなし)でCapybaraを使用する方法は?
質問
シンプルなRubyスクリプトでCapybaraを実行しようとしています。つまり、レールのない/外側の外側です。これがスクリプトです:
require 'rubygems'
require 'capybara'
require 'capybara/dsl'
include Capybara
Capybara.current_driver = :selenium
Capybara.app_host = 'http://www.google.com'
visit('/')
問題は、これを実行すると、このエラーが発生したことです。
NameError: uninitialized constant Capybara::Session
at top level in dsl.rb at line 52
method gem_original_require in custom_require.rb at line 36
method require in custom_require.rb at line 36
at top level in capybara_test.rb at line 3
method gem_original_require in custom_require.rb at line 31
method require in custom_require.rb at line 31
at top level in capybara_test.rb at line
私は何が間違っているのですか?
いくつかの情報:
- Mac OS X 10.5
- Ruby 1.8.6(2009-06-08 Patchlevel 369)[Universal-Darwin9.0
- カピバラ(0.3.9)
ありがとう!
ニール
注:Jnicklasのコメントによると、これを試しました。これは、新しいReadmeをより密接に一致させました。
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
残念ながら、私はまだ同じエラーを見ています:
NameError: uninitialized constant Capybara::Session
考え?
ありがとう!
解決
これが私のために働いているように見えるものです:
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
他のヒント
誤ったドキュメントでさえ永遠に生きていることを示します。 Capybara Readmeは、グローバルネームスペースにCapybaraを含めることをお勧めしていましたが、これは 本当 悪い考え、そして何度もランダムなものを台無しにします。独自のモジュールまたはクラスにカピバラを含めて、代わりにそれを使用する必要があります。
現在のベストプラクティスについては、READMEをご覧ください。
これを確認してください capybararspec101 例とフォーク。
これは、受け入れテストの小さな例です http://www.hi5.com ゼロから使用:
- カピバラ
- rspec
- セレンウェブドイバー
すべての指示はレポにあります
所属していません StackOverflow