From bba9f9ff5d4bef7e6978cd50c413942e373a8e25 Mon Sep 17 00:00:00 2001 From: Jonny Date: Wed, 5 Jun 2019 11:03:58 +0200 Subject: [PATCH] Add basic setup for cucumber tests in Java --- .eslintignore | 2 + .gitignore | 7 ++- SeleniumTests/pom.xml | 56 +++++++++++++++++++ .../seleniumtests/CucumberStepDefinition.java | 28 ++++++++++ .../java/re/turnie/seleniumtests/RunAll.java | 10 ++++ .../turnie/seleniumtests/SystemConstants.java | 29 ++++++++++ 6 files changed, 131 insertions(+), 1 deletion(-) create mode 100644 .eslintignore create mode 100644 SeleniumTests/pom.xml create mode 100644 SeleniumTests/src/main/java/re/turnie/seleniumtests/CucumberStepDefinition.java create mode 100644 SeleniumTests/src/main/java/re/turnie/seleniumtests/RunAll.java create mode 100644 SeleniumTests/src/main/java/re/turnie/seleniumtests/SystemConstants.java diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..9de7782 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,2 @@ +/SeleniumTests/target/**/*.js + diff --git a/.gitignore b/.gitignore index 3d060ad..9b12a4c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,9 @@ /.next/ /node_modules/ /.idea -check-syntax.sh +check-syntax +format +server +/SeleniumTests/.idea/* +/SeleniumTests/*.iml +/SeleniumTests/target/* diff --git a/SeleniumTests/pom.xml b/SeleniumTests/pom.xml new file mode 100644 index 0000000..abcb4d4 --- /dev/null +++ b/SeleniumTests/pom.xml @@ -0,0 +1,56 @@ + + + 4.0.0 + + turnie.re + selenium-tests + 1.0-SNAPSHOT + + + + org.apache.maven.plugins + maven-compiler-plugin + + 8 + 8 + + + + + + + + + org.seleniumhq.selenium + selenium-java + 4.0.0-alpha-1 + + + info.cukes + cucumber-junit + 1.0.2 + test + + + info.cukes + cucumber-java + 1.0.2 + compile + + + junit + junit + 4.10 + + + info.cukes + cucumber-junit + 1.0.2 + compile + + + + + \ No newline at end of file diff --git a/SeleniumTests/src/main/java/re/turnie/seleniumtests/CucumberStepDefinition.java b/SeleniumTests/src/main/java/re/turnie/seleniumtests/CucumberStepDefinition.java new file mode 100644 index 0000000..673ff46 --- /dev/null +++ b/SeleniumTests/src/main/java/re/turnie/seleniumtests/CucumberStepDefinition.java @@ -0,0 +1,28 @@ +package re.turnie.seleniumtests; + +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.chrome.ChromeDriver; +import org.openqa.selenium.firefox.FirefoxDriver; + +public class CucumberStepDefinition { + + protected WebDriver driver; + + protected void checkDriverAvailability() { + if(driver == null) { + SystemConstants.TestBrowser browser = SystemConstants.BROWSER_USED_FOR_TESTS; + System.setProperty(browser.getSystemComponentName(), browser.getDriverPath()); + + switch (browser) { + case Chrome: + driver = new ChromeDriver(); + break; + case Firefox: + driver = new FirefoxDriver(); + break; + default: + System.out.println("Driver could not be setup."); + } + } + } +} diff --git a/SeleniumTests/src/main/java/re/turnie/seleniumtests/RunAll.java b/SeleniumTests/src/main/java/re/turnie/seleniumtests/RunAll.java new file mode 100644 index 0000000..cac5951 --- /dev/null +++ b/SeleniumTests/src/main/java/re/turnie/seleniumtests/RunAll.java @@ -0,0 +1,10 @@ +package re.turnie.seleniumtests; + +import cucumber.junit.Cucumber; +import org.junit.runner.RunWith; + +@RunWith(Cucumber.class) +@Cucumber.Options(format = {"pretty", "html:target/cucumber"}, + features = {"./"}) +public class RunAll { +} diff --git a/SeleniumTests/src/main/java/re/turnie/seleniumtests/SystemConstants.java b/SeleniumTests/src/main/java/re/turnie/seleniumtests/SystemConstants.java new file mode 100644 index 0000000..10a2d35 --- /dev/null +++ b/SeleniumTests/src/main/java/re/turnie/seleniumtests/SystemConstants.java @@ -0,0 +1,29 @@ +package re.turnie.seleniumtests; + +public class SystemConstants { + + public static final String FRONTEND_URL = ""; + + public static final TestBrowser BROWSER_USED_FOR_TESTS = TestBrowser.Chrome; + + public enum TestBrowser { + Chrome("webdriver.chrome.driver", ""), + Firefox("webdriver.gecko.driver", ""); + + private String systemComponentName; + private String driverPath; + + TestBrowser(String systemComponentName, String driverPath) { + this.systemComponentName = systemComponentName; + this.driverPath = driverPath; + } + + public String getSystemComponentName() { + return systemComponentName; + } + + public String getDriverPath() { + return driverPath; + } + } +}