A Maven project that incorporates cuke4duke (Cucumber), Spring3, and Jetty + automated UI (Selenium) tests as a project jump start.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


This is a Web Application Skeleton that is built using Maven.

The features are:
1. The Web Application is automatically deployed to the Server for integration-testing.
2. Cucumber is used to drive BDD scenarios aginst the Web Application, using Cuke4Duke.
3. The pageObjects approach has been used to model the Web Application for use by
   integration tests and Cucumber steps.
4. Spring 3 is used to autowire the components of the web app and the steps together.
5. Using Maven profiles, it will be possible to run the same Web tests against different
6. Uses Firefox as the browser used to drive the web application. This can be changed
   easily to HtmlUnit, Chrome or Internet Explorer.  See below.
7. Unit tests are run separately to integration tests.
8. There are checks on code Complexity and Duplication.
9. The database is setup and migrated automatically (Liquibase).

To use this project, clone it, installed the Java SDK and Maven 2, then issue the following
two commands from the projects root folder:

mvn -Dcucumber.installGems=true cuke4duke:cucumber
mvn clean integration-test

On initial run there will be a *lot* of things downloaded from Maven repositories. You
should see the following as amongst the last lines of the Maven output:

[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 8 seconds

*NOTE* When building the maven project for the first time there is a *LOT* of
cuke4duke dependencies downloaded, but just the first time. It takes a while
the first time.  And now the weird part, if on the first run the Cucumber steps fail,
run 'mvn clean integration-test' again. This also only has to be done once.

If you want to change the browser used for driving the web site (default is Firefox) then
specify it on the command line with a Maven profile; firefox, htmlunit, ie and chrome are
valid profiles. For example, the following will run the test using HtmlUnit.

mvn clean integration-test -P htmlunit

If you have any feedback, please email me: james underscore ladd at hotmail dot com.