Skip to content

Instantly share code, notes, and snippets.

@rnemeth1980
Created November 3, 2017 12:02
Show Gist options
  • Select an option

  • Save rnemeth1980/ab0f707977862718ebeaa855102fd369 to your computer and use it in GitHub Desktop.

Select an option

Save rnemeth1980/ab0f707977862718ebeaa855102fd369 to your computer and use it in GitHub Desktop.
geb browserstack integration
-------------------------------------------------------------------------------------
GebConfig.groovy
-------------------------------------------------------------------------------------
environments {
remoteChromeDocker {
driver = {
def remoteWebDriverServerUrl = new URL("http://192.168.99.100:5000/wd/hub")
DesiredCapabilities caps = new DesiredCapabilities()
caps.setBrowserName("chrome")
caps.setPlatform(Platform.LINUX)
// set chrome language at the node
ChromeOptions options = new ChromeOptions();
options.addArguments("--lang=de-DE");
options.addArguments("--start-maximized");
options.addArguments("--no-sandbox");
options.addArguments("--test-type=ui");
caps.setCapability(ChromeOptions.CAPABILITY, options)
// accept certification errors
caps.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true)
def remoteDriver = new RemoteWebDriver(remoteWebDriverServerUrl, caps)
remoteDriver
}
}
}
-------------------------------------------------------------------------------------
build.gradle
-------------------------------------------------------------------------------------
import org.apache.tools.ant.taskdefs.condition.Os
repositories {
jcenter()
}
ext {
// The drivers we want to use
drivers = ["remoteChromeDocker"]
ext {
groovyVersion = '2.4.6'
gebVersion = '2.0'
seleniumVersion = '3.6.0'
chromeDriverVersion = '2.33'
firefoxDriverVersion = '3.6.0'
ieDriverVersion = '3.6.0'
}
}
apply plugin: "groovy"
apply from: "gradle/idea.gradle"
apply from: "gradle/osSpecificDownloads.gradle"
dependencies {
// If using Spock, need to depend on geb-spock
testCompile "org.gebish:geb-spock:$gebVersion"
testCompile("org.spockframework:spock-core:1.0-groovy-2.4") {
exclude group: "org.codehaus.groovy"
}
compile "org.codehaus.groovy:groovy-all:$groovyVersion"
// If using JUnit, need to depend on geb-junit (3 or 4)
testCompile "org.gebish:geb-junit4:$gebVersion"
// Drivers
testCompile "org.seleniumhq.selenium:selenium-chrome-driver:$seleniumVersion"
testCompile "org.seleniumhq.selenium:selenium-firefox-driver:$seleniumVersion"
testCompile "org.seleniumhq.selenium:selenium-safari-driver:$seleniumVersion"
testCompile "org.seleniumhq.selenium:selenium-ie-driver:$seleniumVersion"
testCompile "org.seleniumhq.selenium:selenium-remote-driver:$seleniumVersion"
testCompile("org.seleniumhq.selenium:selenium-support:$seleniumVersion")
// for REST calls
testCompile("org.codehaus.groovy.modules.http-builder:http-builder:0.7.1")
// Oracle JDBC driver
compile files("lib/jdbc/oracle/ojdbc6.jar", "lib/jdbc/oracle/xdb6.jar")
// for downloading drivers
testCompile("org.codehaus.groovy.modules.http-builder:http-builder:0.7.1")
}
drivers.each { driver ->
task "${driver}Test"(type: Test) {
reports {
html.destination = reporting.file("$name/tests")
junitXml.destination = file("$buildDir/test-results/$name")
}
outputs.upToDateWhen { false } // Always run tests
systemProperty "geb.build.reportsDir", reporting.file("$name/geb")
systemProperty "geb.env", driver
String baseUrl = System.getProperty("functional.tests.baseurl")
String stagingEnvironment = System.getProperty("functional.tests.staging.environment") ?: "DEV"
if(stagingEnvironment) {
println("functional.tests.staging.environment -> $stagingEnvironment")
systemProperty "functional.tests.staging.environment", stagingEnvironment
}
if(baseUrl) {
println ("functional.tests.baseurl -> $baseUrl")
systemProperty "geb.build.baseUrl", baseUrl
}
}
}
test {
dependsOn drivers.collect { tasks["${it}Test"] }
enabled = false
}
task wrapper(type: Wrapper) {
gradleVersion = "2.9"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment