I'm no expert, in fact this is my first Gradle/Geb project. The following works for me with 5.4 alpha:
With the Eclipse Gradle plugin I can do a Gradle build which runs the tests and creates a war file. create a build.gradle file with this apply plugin: 'java' apply plugin: 'war' apply plugin: 'jetty' apply plugin: 'eclipse-wtp' apply plugin: 'groovy' apply plugin: 'maven' project.ext.versions = [ jetty: "7.6.11.v20130520", tomcat: "6.0.30", testng: "6.5.2", easymock: "3.0", servletapi: "2.5", spock: "0.7-groovy-2.0", hibernate: "4.1.2.Final", groovy: "2.0.6", slf4j: "1.7.2", wro4j: "1.7.0", geb: "0.9.0", selenium: "2.33.0" ] repositories { mavenCentral() maven { url "https://repository.apache.org/content/groups/staging" } } dependencies { compile 'org.apache.tapestry:tapestry-core:5.4-alpha-15' compile 'org.apache.tapestry:tapestry-test:5.4-alpha-15' compile 'org.apache.tapestry:tapestry-runner:5.4-alpha-15' compile 'com.paypal.sdk:rest-api-sdk:0.5.2' runtime 'javax.servlet:jstl:1.1.2' providedCompile 'javax.servlet:servlet-api:2.5' testRuntime "org.slf4j:slf4j-log4j12:${versions.slf4j}" groovy "org.codehaus.groovy:groovy-all:${versions.groovy}" testCompile "org.gebish:geb-spock:${versions.geb}" testCompile "org.spockframework:spock-core:${versions.spock}" testCompile "org.seleniumhq.selenium:selenium-java:${versions.selenium}", { exclude group: "org.eclipse.jetty" } testCompile "org.seleniumhq.selenium:selenium-server:${versions.selenium}", { exclude group: "org.eclipse.jetty" } } test { useJUnit() systemProperties("geb.build.reportsDir": "$reporting.baseDir/geb", "tapestry.compiled-asset-cache-dir": "$buildDir/compiled-asset-cache", "tapestry.production-mode": "false") } in src/test/resources/GebConfig.groovy driver = "firefox" baseUrl = "http://localhost:8080/sandbox" waiting { // Long timeout since we have to wait for Rhino & friends to spin up timeout = 60 } in src/test/groovy/tests/IndexTest.groovy package tests import geb.spock.GebReportingSpec import org.apache.tapestry5.test.Jetty7Runner import spock.lang.Shared class IndexTest extends GebReportingSpec { @Shared def runner; def setupSpec() { runner = new Jetty7Runner("src/main/webapp", "/sandbox", 8080, 8081); runner.start() } def cleanupSpec() { runner.stop() } def "Check Index"() { when: // Open index page go() then: $(".title").text().trim() == "Index" } def "Check Button"() { when: // Open index page go() then: $(".btn").value().trim() == "Create/Update" } }