[.float-group]
--
image::https://img.shields.io/badge/License-Apache%202.0-blue.svg[link=https://github.com/spockframework/spock/blob/master/LICENSE,float=left]
image::https://img.shields.io/travis/spockframework/spock-example/master.svg?label=Build[link=https://travis-ci.org/spockframework/spock-example,float=left]
image::https://badges.gitter.im/spockframework/spock.svg[link=https://gitter.im/spockframework/spock?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge,float=left]
--

== Spock Framework Example Project


The purpose of this project is to help you get started with Spock. The project includes several example specifications and build scripts for Ant, Gradle, and Maven. It also makes it easy to create an Eclipse or IDEA project, allowing you to run the example specs from within your IDE.

All three builds (Ant, Gradle, Maven) will automatically download all required dependencies, compile the project, and finally run the example specs. The Gradle build goes one step further by bootstrapping itself, alleviating the need to have a build tool preinstalled.

=== Prerequisites

- JDK 8 or higher
- Maven use `mvnw` wrapper
- Gradle use `gradlew` wrapper

NOTE: This example shows the usage of Spock 2.0, which uses the JUnit Platform. If you want to see how to get Spock 1.x with JUnit 4 up and running see the https://github.com/spockframework/spock-example/tree/spock-1.x[Spock-1.x] Branch.

=== Building with Gradle
Type:

    ./gradlew clean test

Downloaded files (including the Gradle distribution itself) will be stored in the Gradle user home directory (typically *user_home*`/.gradle`).

=== Building with Maven
Type:

    ./mvnw clean test

Downloaded files will be stored in the local Maven repository (typically *user_home*`/.m2/repository`).

=== Creating an Eclipse project
Type:

    ./gradlew cleanEclipse eclipse

Make sure you have a recent version of the Groovy Eclipse plugin installed. After importing the generated project into a workspace, go to Preferences->Java->Build Path->Classpath Variables and add a variable named `GRADLE_CACHE` with value *user_home*`/.gradle/cache`. (If you have an environment variable `GRADLE_USER_HOME` set, the correct value is *GRADLE_USER_HOME*`/cache`.) You should now be able to build the project, and to run the specs like you would run a JUnit test. See http://wiki.spockframework.org/GettingStarted#Eclipse for more information on how to get started with Spock and Eclipse.

=== Creating an IDEA project
Just open the project directory with Intelli IDEA and it should auto-detect the project settings.

Alternatively Type:

    ./gradlew cleanIdea idea

Open the generated project in IDEA. You should now be able to build the project, and to run the specs like you would run a JUnit test.

NOTE: you might also want to install https://github.com/mycila/gmavenplus-intellij-plugin so that `src/test/groovy` is correctly recognized as a test classes root.

=== Getting hold of the Jars used in this project
Type:

    ./gradlew collectJars

The Jars will be copied to `build/output/lib`. The comments in `build.gradle` explain what they are needed for.

=== Further Resources


* http://spockframework.org[Spock homepage]
* https://meetspock.appspot.com[Spock web console]
* http://docs.spockframework.org/[Main documentation]
* http://forum.spockframework.org[User discussion group]
* http://dev.forum.spockframework.org[Dev discussion group]
* http://issues.spockframework.org[Issue tracker]
* http://builds.spockframework.org[Build server]
* http://blog.spockframework.org[Spock blog]
* https://twitter.com/spockframework[Spock on Twitter]
* http://ant.apache.org[Ant homepage]
* http://www.gradle.org[Gradle homepage]
* http://groovy-lang.org/[Groovy homepage]
* http://maven.apache.org[Maven homepage]

If you have any comments or questions, please direct them to the Spock discussion group. All feedback is appreciated!

Happy spec'ing!

The Spock Framework Team

