I have a problem with running @ParameterizedTest via TestContainers. @Test running via TestContainers, but as soon as I change to @ParameterizedTest, then everything starts running on my local Сhrome instance. In TestContainers's documentation I didn't find some information about @ParameterizedTest.
This is working:
import com.codeborne.selenide.WebDriverRunner;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.openqa.selenium.By;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testcontainers.containers.BrowserWebDriverContainer;
import static com.codeborne.selenide.Condition.visible;
import static com.codeborne.selenide.Selenide.*;
import static conf.Configuration.BASE_URL;
public class Test {
private final SelenideElement errorAuth = $(By.xpath(ErrorNotifications.ERROR_AUTH));
@Rule
public BrowserWebDriverContainer chrome =
new BrowserWebDriverContainer()
.withCapabilities(new ChromeOptions());
@Before
public void setUp() {
RemoteWebDriver driver = chrome.getWebDriver();
WebDriverRunner.setWebDriver(driver);
}
@After
public void tearDown() {
WebDriverRunner.closeWebDriver();
}
@org.junit.Test
public void search() {
open(BASE_URL);
new StartPage()
.clickEnterButton()
.enterLogin("var1")
.enterPassword("password")
.clickEnterButton();
errorAuth.shouldBe(visible);
sleep(1000);
}
}
This isn't working:
import com.codeborne.selenide.WebDriverRunner;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;
import org.openqa.selenium.By;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testcontainers.containers.BrowserWebDriverContainer;
import static com.codeborne.selenide.Condition.visible;
import static com.codeborne.selenide.Selenide.*;
import static conf.Configuration.BASE_URL;
public class Test {
private final SelenideElement errorAuth = $(By.xpath(ErrorNotifications.ERROR_AUTH));
@Rule
public BrowserWebDriverContainer chrome =
new BrowserWebDriverContainer()
.withCapabilities(new ChromeOptions());
@Before
public void setUp() {
RemoteWebDriver driver = chrome.getWebDriver();
WebDriverRunner.setWebDriver(driver);
}
@After
public void tearDown() {
WebDriverRunner.closeWebDriver();
}
@ParameterizedTest
@CsvSource({"var1, var1", "var2, var2", "null, null"})
public void search(String email, String password) {
open(BASE_URL);
new StartPage()
.clickEnterButton()
.enterLogin(email)
.enterPassword(password)
.clickEnterButton();
errorAuth.shouldBe(visible);
sleep(1000);
}
}