Использую Java+Maven+TestNG+WebDriver на IntellijIdea.
Я подозреваю, что проблема связана с обработкой тестов с использованием DataProvider’а.
Подозрения вызваны тем, что похожие тесты без его использования проходят нормально.
Проблема в том, что не фэйлятся два теста, которые должны (выделены на скриншоте1).
Куски кода выкладываю ниже.
Проблему частично решил, если часть кода, обозначенного (// * ==) перенести в место (// ** ==), но при этом не вываливается уже знакомая ошибка “missing web element” (скриншот2).
Может кто подскажет, как правильно обрабатывать подобные тесты?
@BeforeTest
@Parameters({"browser", "mailboxAccount"})
public void beforeTest(@Optional String browser, @Optional String mailboxAccount) throws Exception {
prepareDBforApplicationTesting(NAME_VALUE, COMPANY_VALUE, mailboxAccount);
startTest(browser, BASE_URL);
login(driver, mailboxAccount, PASSWORD_VALUE_VALID);
driver.findElement(By.xpath(APPLICATIONS_TAB_XPATH)).click();
}
@Test(dataProvider = "getIncorrectDataForAddingApplication")
public void addNewApplication(String title, String packageName, String url, String category, String platform, String ageLimit, boolean paidApp, boolean virtualCurrency, String currencyName, String exchangeRate, boolean backExchange) throws InterruptedException {
addApplication(driver, false, title, packageName, url, category, platform, ageLimit, paidApp, virtualCurrency, currencyName, exchangeRate, backExchange);
try {
assertTrue(isElementPresent(driver, By.xpath(BUTTON_ADD_NEW_APPLICATION_XPATH)));
} catch (Error e) {
verificationErrors.append(e.toString());
// ** ==================================================
}
}
@AfterTest
@Parameters("mailboxAccount")
public void afterTest(@Optional String mailboxAccount) {
driver.quit();
clearDBafterTest(mailboxAccount);
// * - проблемма в этой части кода ===========================
String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString)) {
fail(verificationErrorString);
}
// ====================================================
}
скрин1
скрин2