Я пытаюсь запустить тесты параллельно, используя TestNg. У меня есть 3 класса (два тестовых класса, которые расширяют класс BaseTest)
В классе BaseTest есть только вещи "setup" и "teardown", больше ничего.
Когда я пытаюсь запустить тесты параллельно, как один, запускается один класс с тестами, а для другого класса открывается только браузер (но тест не выполняется)
Но !! когда я вырезал код из класса BaseTest и поместил его непосредственно в каждый из моих тестовых классов (и, следовательно, не расширяя BaseClass), тогда код работает, и тесты выполняются параллельно
почему ?? Я не делаю никаких изменений кода вообще ... и когда я хочу запускать тесты не параллельно (только по одному), тогда использование расширения класса BaseTest работает просто отлично
в testing.xml пытался выставить параллельные = "методы", "тесты", "истина" ...
ниже мои классы и testing.xml
public class BaseTest {
public static WebDriver driver;
public static WebDriverWait wait;
@BeforeClass
public static void setup() {
System.setProperty("webdriver.gecko.driver", System.getProperty("user.dir") + "\\src\\files\\geckodriver.exe");
driver = new FirefoxDriver();
wait = new WebDriverWait(driver, 10);
driver.manage().window().maximize();
}
@AfterClass
public static void teardown() {
driver.quit();
}
}
-----------------------
public class HomePageHotelsSearchTest extends BaseTest {
@Test
public void giveNameProperly() throws IOException {
HomePage homePage = new HomePage(driver, wait);
homePage.openUrl("https://www.phptravels.net/");
homePage.openHotelsSearchTab();
homePage.inputCityInHotelsSearch("London");
homePage.selectCityFromSearchResult(0);
homePage.inputCheckInDateInHotelsSearch("23/08/2018");
homePage.inputCheckOutDateInHotelsSearch("27/08/2018");
homePage.openPeopleAmountTabInHotelsSearch();
homePage.addAdultsInHotelsSearch(1);
homePage.startSearchingHotels();
homePage.elementClickable(By.linkText("Grand Plaza Apartments"));
String firstResult = homePage.readText(By.linkText("Grand Plaza Apartments"));
Assert.assertEquals("Grand Plaza Apartments", firstResult);
//Reporter.log("Test owned!", true);
}
}
-----------------------
public class LoginTest extends BaseTest {
@Test
public void loginTest() throws InterruptedException, IOException {
HomePage homePage = new HomePage(driver, wait);
homePage.openUrl("https://www.phptravels.net/");
LoginPage loginPage = homePage.goToLoginPage();
loginPage.waitForPageToLoad("Login");
loginPage.inputEmail("user@phptravels.com");
loginPage.inputPassword("demouser");
loginPage.login();
loginPage.waitForPageToLoad("My Account");
String myAccountPageTitle = driver.getTitle();
Assert.assertEquals(myAccountPageTitle, "My Account");
//Reporter.log("Test owned!", true);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://beust.com/testng/testng-1.0.dtd" >
<suite name="Suite" thread-count="2" parallel="true">
<test name="test1">
<classes>
<class name="tests.LoginTest" />
<class name="tests.HomePageHotelsSearchTest"/>
</classes>
</test>
</suite>