Я хочу установить результат теста метода в testng на отказ, если есть ошибка. Я обнаружил, что эта строка кода должна помочь
Reporter.getCurrentTestResult().setStatus(ITestResult.FAILURE);
Но если я спровоцирую ошибку, я все равно не получу отказ от моего общего тестового прогона.
===============================================
LoginTesten
Total tests run: 4, Failures: 0, Skips: 0
===============================================
В приведенном выше прогоне должно быть 2 сбоя, но ничего нет. Правило для установки результата теста находится в классе, отличном от того, из которого запускается тест. Он установлен в классе, где я размещаю код своей контрольной страницы, чтобы у меня не было напыщенного теста.
Код, где он установлен
public void checkTextOnPage(String text, boolean expected,String errorMessage, ArrayList<WebDriver> browsers, Logger Logger, String map) throws IOException {
for(WebDriver driver: browsers){
try {
Assert.assertEquals(driver.getPageSource().contains(text), expected, errorMessage);
}catch (AssertionError e){}
Capabilities dataBrowser = ((RemoteWebDriver)driver).getCapabilities();
if(driver.getPageSource().contains(text) == expected){
Logger.info("[" + this.dateFormat.format(this.date) + "]" +" Browser:" + dataBrowser.getBrowserName() + " -- Version:" + dataBrowser.getVersion() + " -- Text : " + text + " => PRESENT");
}else if (driver.getPageSource().contains(text) != expected){
Logger.warning("[" + this.dateFormat.format(this.date) + "]" +" Browser:" + dataBrowser.getBrowserName() + " -- Version:" + dataBrowser.getVersion() + " -- Text : " + text + " => NOT PRESENT");
File screenshot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(screenshot, new File(map + "text_" + text + "_NotPresent_" + this.screenshotCount + "_" + dataBrowser.getBrowserName() + ".png"));
this.screenshotCount++;
Reporter.getCurrentTestResult().setStatus(ITestResult.FAILURE);
}
}
}
это мой тест, который выполняется
public void loginIMWWelcomeNOT() throws InterruptedException, IOException {
this.getLogin().goToPage(this.getDriverList(), TestConstants.Test_URL);
this.getBrowserMovement().typeTextElementXpath(".//*[@name='username']", this.getDriverList(), "intix1");
this.getBrowserMovement().typeTextElementXpath(".//*[@name='password']", this.getDriverList(), "Jasmine11");
this.getBrowserMovement().clickElementXpath(".//*[@name='logon']", this.getDriverList());
this.getCheckPage().checkTextOnPage("grazjfnzeofnez", true, "We komen niet terecht op de welkom pagina", this.getDriverList(), this.getLOGGER(), this.getScreenshotMap());
System.out.println(Reporter.getCurrentTestResult());
}
Вывод, который я получаю из этого кода,
apr 04, 2016 4:50:37 PM Data.CheckPage checkTextOnPage
WARNING: [2016-04-04 165030] Browser:chrome -- Version:49.0.2623.110 -- Text : grazjfnzeofnez => NOT PRESENT
[TestResult name="" status=FAILURE method=LoginTesten.loginIMWWelcomeNOT()[pri:0, instance:Data.Tests.LoginTesten@1e643faf] output={null}]
Итак, он устанавливается, но ничем не подхватывается. Это проблема, которую я установил в другом классе или что-то еще?