Искам да настроя резултата от теста на метод в 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}]
Така че се настройва, но не се прихваща от нищо. Проблемът ли е, че го зададох в другия клас или нещо друго?