Получение TestNG для провала теста, если файл не существует в местоположении - PullRequest
1 голос
/ 07 января 2020

У меня есть тестовый пример, который загружает отчет с моего сайта в папку загрузок. Я хочу, чтобы TestNG провалил тест, если файл не загружается (т.е. его нет в моей папке загрузок), но я не могу заставить его провалиться. Я новичок в Java И TestNG и через неделю ухожу в декретный отпуск. Пожалуйста, помогите девушке. Вот что у меня так далеко. Спасибо!

package trailerreports;
import org.testng.annotations.Test;
import java.io.File;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.Select;

public class TrailerSummaryReport {
@Test
public void Run() throws InterruptedException {

      System.setProperty("webdriver.chrome.driver", "C:\\Selenium\\chromedriver.exe");

        WebDriver driver=new ChromeDriver();
        driver.manage().window().maximize();
        driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
        driver.get("https://uat.mixtelematics.com/#/login");
        driver.findElement(By.name("userName")).sendKeys("xx@mixtelematics.com");       
        driver.findElement(By.name("password")).sendKeys("xxxxx");      
        driver.findElement(By.xpath("//*[@ng-class='buttonClass()']")).click();     
        driver.get("https://uat.mixtelematics.com/#/insight/reports/setup?orgId=3141559618424543932&path=%2FFM%2FTrailer%20Reports%2FTrailer%20Summary%20Report");                      driver.findElement(By.cssSelector(".first-item > div:nth-child(2) > div:nth-child(1) > div:nth-child(2)")).click();     
        driver.findElement(By.xpath("//BUTTON[@class='btn-wide btn-small btn-success btn ng-scope ng-binding'][text()='Next']")).click();       
        driver.findElement(By.cssSelector("a.btn-success:nth-child(1)")).click();
        driver.findElement(By.cssSelector("th.selection")).click();
        driver.findElement(By.xpath("//BUTTON[@class='btn ng-scope ng-binding btn-wide btn-success'][text()='Select']")).click();       
        Select dropdown = new Select(driver.findElement(By.cssSelector("select.span3")));
        dropdown.selectByVisibleText("Year to Date");
        driver.findElement(By.xpath("//BUTTON[@class='btn-wide btn-small btn-success btn ng-scope ng-binding'][text()='Next']")).click();
        Select dropdown5 = new Select(driver.findElement(By.cssSelector("div.form-inline:nth-child(2) > select:nth-child(2)")));
        dropdown5.selectByVisibleText("Download");
        Select dropdown6 = new Select(driver.findElement(By.cssSelector("span.report-parameter:nth-child(4) > span:nth-child(1) > div:nth-child(1) > div:nth-child(2) > select:nth-child(2)")));
        dropdown6.selectByVisibleText("PDF");
        driver.findElement(By.xpath("//BUTTON[@class='btn-wide btn-small btn-success btn ng-scope ng-binding'][text()='Run']")).click();      

  } 

  @Test
  public void Download() throws InterruptedException {

        File f = new File("C://Users//lisar//Downloads/Trailer Summary Report.pdf");
          if(f.exists()){
              System.out.println("File exists");

     }        
  }
}         

File doesn't exist TestNG still passes Download test

1 Ответ

1 голос
/ 07 января 2020

Файловый объект будет возвращен независимо от того, является ли он допустимым путем или нет. f.exists () вернет true или false. Поскольку файл отсутствует в пути, он возвращает false, а поскольку вы не обработали остальную часть, он не отображается на консоли.

Если вы хотите вызвать исключение при чтении файла, вам следует use FileInputStream

FileInputStream fis = new FileInputStream("path of file..");

Это вернет исключение, если файл отсутствует в пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...