views:

53

answers:

2

Hi I like the overall idea of Capybara, but i can't run it against the Java application for some reason.

Is that possible at all?

Thank you

A: 

Capybara is tied to Ruby as far as I know. However, if you're interested in using Cucumber with Java then check out cuke4duke: http://wiki.github.com/aslakhellesoy/cuke4duke/

You can use a variety of languages for writing the step definitions and drive the browser with WebDriver.

AlistairH
+2  A: 

Yes, it is possible and we are doing it. Just use the selenium-webdriver gem with firefox or Chromium to remotely test the running application.

You can't test it from the Java test environment as you don't have the Rack infrastructure, but you can create a separate ruby testsuite and run rake when your java app is running on your development machine (or even autostart the application from the Rakefile)

This is how cucumber's env.rb looks like:

#
# features/support/env.rb
#
$: << File.join(File.dirname(__FILE__), "..", "..", "lib")

browser = :chrome #:htmlunit #:chrome #:firefox

host = ENV['TESTHOST'] || 'http://localhost:8080'
# may be non url was given
if not host.include?("//")
  host = "https://#{host}"
end

ENV['LANG'] = "en_US.UTF-8"

require 'rubygems'
require 'capybara'
require 'capybara/cucumber'
require 'selenium-webdriver'

require 'culerity' if browser == :htmlunit

case browser
when :htmlunit
  Capybara.default_driver = :culerity
  Capybara.use_default_driver
else
  Capybara.default_driver = :selenium
  Capybara.app_host = host
end

Capybara.run_server = false
if Capybara.default_driver == :selenium
  Capybara::Driver::Selenium.browser = browser
  driver = Selenium::WebDriver.for browser
end
duncan