0100110010101
0100110010101

Reputation: 6729

Is it possible to test Java application with Capybara?

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?

Upvotes: 5

Views: 5176

Answers (3)

manat
manat

Reputation: 1132

Just stumbled on this one, and found that cuke4duke has been discontinued. However, the better news is that there's an official implementation of Cucumber for JVM available, as cucumber-jvm.

PS. At first I thought it would be JCucumber :P

Upvotes: 0

duncan
duncan

Reputation: 6283

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

Upvotes: 6

AlistairH
AlistairH

Reputation: 3229

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.

Upvotes: 0

Related Questions