diff --git a/build.gradle b/build.gradle index 9028dfe..33b6f6f 100644 --- a/build.gradle +++ b/build.gradle @@ -4,11 +4,9 @@ plugins { id "com.energizedwork.webdriver-binaries" version "1.4" id "com.energizedwork.idea-base" version "1.4" } - ext { - // The drivers we want to use - drivers = ["chrome","firefox"] - + // The drivers we want to use, addingn browserstack + drivers = ["chrome","firefox", "browserstack"] ext { groovyVersion = '2.4.12' gebVersion = '2.2' @@ -17,11 +15,9 @@ ext { geckoDriverVersion = '0.23.0' } } - repositories { mavenCentral() } - dependencies { compile 'org.codehaus.groovy:groovy-all:2.4.6' // If using Spock, need to depend on geb-spock @@ -30,42 +26,32 @@ dependencies { exclude group: "org.codehaus.groovy" } testCompile "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" - compile group: 'org.seleniumhq.selenium', name: 'selenium-support', version: '3.14.0' // JSON simple for MuukReport implementation group: 'com.googlecode.json-simple', name: 'json-simple', version: '1.1.1' - } - webdriverBinaries { chromedriver chromeDriverVersion geckodriver geckoDriverVersion } - drivers.each { driver -> task "${driver}Test"(type: Test) { group JavaBasePlugin.VERIFICATION_GROUP - outputs.upToDateWhen { false } // Always run tests - systemProperty "geb.build.reportsDir", reporting.file("geb/$name") systemProperty "geb.env", driver } } - test { dependsOn drivers.collect { tasks["${it}Test"] } enabled = false } - tasks.withType(Test) { maxHeapSize = "1g" jvmArgs '-XX:MaxMetaspaceSize=128m' @@ -73,7 +59,6 @@ tasks.withType(Test) { exceptionFormat = 'full' } } - tasks.withType(GroovyCompile) { groovyOptions.forkOptions.memoryMaximumSize = '256m' } diff --git a/mkcli.py b/mkcli.py index 80ca605..b0130d9 100644 --- a/mkcli.py +++ b/mkcli.py @@ -76,6 +76,7 @@ def run(args): value = args.value noexec = args.noexec route = 'src/test/groovy' + # hardcoding to browserstack browser = args.browser # internal cloud only executionNumber = args.executionnumber or None @@ -301,7 +302,8 @@ def run(args): def getBrowserName(browser): switcher = { "chrome":"chromeTest", - "firefox": "firefoxTest" + "firefox": "browserstackTest", + "browserstack": "browserstackTest" } #select a browser from the list or return firefox as default return switcher.get(browser,"firefoxTest") diff --git a/src/test/resources/GebConfig.groovy b/src/test/resources/GebConfig.groovy index 5fe535f..1f1b90e 100644 --- a/src/test/resources/GebConfig.groovy +++ b/src/test/resources/GebConfig.groovy @@ -7,6 +7,7 @@ import org.openqa.selenium.chrome.ChromeOptions import org.openqa.selenium.firefox.FirefoxDriver import org.openqa.selenium.remote.DesiredCapabilities import org.openqa.selenium.remote.CapabilityType +import org.openqa.selenium.remote.RemoteWebDriver waiting { timeout = 20 @@ -45,6 +46,24 @@ environments { atCheckWaiting = 1 driver = { new FirefoxDriver() } } + + // run via “./gradlew browserstackTest + browserstack{ + String USERNAME = "user"; + String AUTOMATE_KEY = "automatekey"; + String URL = "https://" + USERNAME + ":" + AUTOMATE_KEY + "@hub-cloud.browserstack.com/wd/hub"; + driver = { + DesiredCapabilities caps = new DesiredCapabilities(); + caps.setCapability("os", "Windows"); + caps.setCapability("os_version", "10"); + caps.setCapability("browser", "Chrome"); + caps.setCapability("browser_version", "107.0"); + caps.setCapability("browserstack.local", "false"); + caps.setCapability("browserstack.debug", "true"); + caps.setCapability("browserstack.selenium_version", "3.6.0"); + new RemoteWebDriver(new URL(URL), caps); + } + } } // To run the tests with all browsers just run “./gradlew test”