From a9d6b10b86fbf6bcb80b4f1e356f4deb5f7eb7f6 Mon Sep 17 00:00:00 2001 From: Andrei Solntsev Date: Wed, 18 Sep 2024 21:41:22 +0300 Subject: [PATCH] upgrade from JUnit 4 to JUnit 5 --- build.gradle | 22 ++++- .../org/selenide/examples/hugeform/Demo.java | 18 +++-- .../examples/hugeform/FillHugeFormTest.java | 80 ++++++++++--------- 3 files changed, 71 insertions(+), 49 deletions(-) diff --git a/build.gradle b/build.gradle index b68f0fc..d331a71 100644 --- a/build.gradle +++ b/build.gradle @@ -4,15 +4,29 @@ repositories { mavenCentral() } +ext { + junitVersion = '5.10.3' + slf4jVersion = '2.0.16' + selenideVersion = '7.5.0' +} + dependencies { - testImplementation 'junit:junit:4.13.2' - testImplementation 'com.codeborne:selenide-junit4:7.5.0' - implementation 'org.slf4j:slf4j-simple:2.0.16' - testRuntimeOnly 'org.slf4j:slf4j-simple:2.0.16' + testImplementation("org.junit.jupiter:junit-jupiter-api:$junitVersion") + testImplementation("org.junit.jupiter:junit-jupiter-engine:$junitVersion") + + testImplementation "com.codeborne:selenide:$selenideVersion" + implementation "org.slf4j:slf4j-simple:$slf4jVersion" + testRuntimeOnly "org.slf4j:slf4j-simple:$slf4jVersion" } defaultTasks 'clean', 'test' +java { + toolchain { + languageVersion = JavaLanguageVersion.of(17) + } +} + [compileJava, compileTestJava]*.options.collect {options -> options.encoding = 'UTF-8'} [compileJava, compileTestJava]*.options.collect {options -> options.debug = true} diff --git a/src/test/java/org/selenide/examples/hugeform/Demo.java b/src/test/java/org/selenide/examples/hugeform/Demo.java index 117cb70..a508e31 100644 --- a/src/test/java/org/selenide/examples/hugeform/Demo.java +++ b/src/test/java/org/selenide/examples/hugeform/Demo.java @@ -1,14 +1,16 @@ package org.selenide.examples.hugeform; -import com.codeborne.selenide.SelenideConfig; -import com.codeborne.selenide.SelenideDriver; -import org.openqa.selenium.By; +import static com.codeborne.selenide.Selenide.sleep; +import static java.util.Objects.requireNonNull; +import static java.util.concurrent.Executors.newFixedThreadPool; +import static java.util.concurrent.TimeUnit.MINUTES; import java.util.concurrent.ExecutorService; -import java.util.concurrent.TimeUnit; -import static com.codeborne.selenide.Selenide.sleep; -import static java.util.concurrent.Executors.newFixedThreadPool; +import org.openqa.selenium.By; + +import com.codeborne.selenide.SelenideConfig; +import com.codeborne.selenide.SelenideDriver; public class Demo implements Runnable { private final SelenideDriver driver; @@ -19,7 +21,7 @@ public Demo(SelenideDriver driver) { @Override public void run() { - driver.open(getClass().getResource("/huge_dynamic_form.html")); + driver.open(requireNonNull(getClass().getResource("/huge_dynamic_form.html"))); driver.$(By.name("FOOTER")).setValue("fastSetValue = " + driver.config().fastSetValue()); driver.$(By.name("HEADER")).setValue("fastSetValue = " + driver.config().fastSetValue()); @@ -42,7 +44,7 @@ public static void main(String[] args) throws InterruptedException { pool.submit(new Demo(browser1)); pool.submit(new Demo(browser2)); pool.shutdown(); - pool.awaitTermination(1, TimeUnit.MINUTES); + pool.awaitTermination(1, MINUTES); sleep(4000); browser2.close(); diff --git a/src/test/java/org/selenide/examples/hugeform/FillHugeFormTest.java b/src/test/java/org/selenide/examples/hugeform/FillHugeFormTest.java index c41e46d..74626cd 100644 --- a/src/test/java/org/selenide/examples/hugeform/FillHugeFormTest.java +++ b/src/test/java/org/selenide/examples/hugeform/FillHugeFormTest.java @@ -1,54 +1,54 @@ package org.selenide.examples.hugeform; -import com.codeborne.selenide.Configuration; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; -import org.openqa.selenium.By; - -import java.util.List; - import static com.codeborne.selenide.Selenide.$; +import static com.codeborne.selenide.Selenide.closeWebDriver; import static com.codeborne.selenide.Selenide.open; -import static com.codeborne.selenide.WebDriverRunner.closeWebDriver; -import static java.util.Arrays.asList; +import static java.util.Objects.requireNonNull; + +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.openqa.selenium.By; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.codeborne.selenide.Configuration; -@RunWith(Parameterized.class) public class FillHugeFormTest { - @Parameterized.Parameters - public static List names() { - return asList( - new Object[]{"chrome", "sendKeys"}, - new Object[]{"chrome", "fastSetValue"}, - new Object[]{"firefox", "sendKeys"}, - new Object[]{"firefox", "fastSetValue"} - ); + + private static final Logger log = LoggerFactory.getLogger(FillHugeFormTest.class); + + @Test + void chrome_sendKeys() { + fillHugeForm("chrome", "sendKeys"); + } + + @Test + void chrome_fastSetValue() { + fillHugeForm("chrome", "fastSetValue"); + } + + @Test + void firefox_sendKeys() { + fillHugeForm("firefox", "sendKeys"); + } + + @Test + void firefox_fastSetValue() { + fillHugeForm("firefox", "fastSetValue"); } - - private final String method; - public FillHugeFormTest(String browser, String method) { - this.method = method; + private void init(String browser, String method) { Configuration.browser = browser; Configuration.browserSize = "500x700"; Configuration.browserPosition = "200x100"; Configuration.fastSetValue = "fastSetValue".equals(method); + open(requireNonNull(getClass().getResource("/huge_dynamic_form.html"))); } - @Before - public void setUp() { - open(getClass().getResource("/huge_dynamic_form.html")); - } + private void fillHugeForm(String browser, String method) { + init(browser, method); - @After - public void tearDown() { - closeWebDriver(); - } - - @Test - public void fillHugeForm() { $(By.name("HEADER")).setValue(Configuration.browser + ", " + method + "():"); $(By.name("FOOTER")).setValue(Configuration.browser + ", " + method + "():"); @@ -58,6 +58,12 @@ public void fillHugeForm() { } long end = System.currentTimeMillis(); - System.out.println(Configuration.browser + " --> " + method + ": " + (end-start) + " ms."); + log.info("{} --> {}: {} ms.", browser, method, end - start); + } + + @BeforeEach + @AfterEach + public void tearDown() { + closeWebDriver(); } }