Ich habe den folgenden Testfall mit TestNG geschrieben, überspringe aber den MakemyTrip Testfall. Ich habe keine Ahnung warum. Es gibt keine Abhängigkeiten und die Testdaten werden auf dem richtigen Weg gehalten.TestNG überspringt die Methode "MakemytripHome", obwohl keine Abhängigkeiten bestehen. Warum wird es nicht ausgeführt?
Warum TestNG es nicht ausführt?
public class Secattempt {
static FileInputStream fis;
static XSSFWorkbook workbook;
static XSSFSheet sheet;
static XSSFRow row;
static XSSFCell cell;
@Test(dataProvider = "getData")
public void MakemytripHome(String departCity, String destCity, String browser) throws AWTException {
Robot robo = new Robot();
WebDriver driver;
if (browser.equals("firefox")) {
driver = new FirefoxDriver();
} else {
System.setProperty("webdriver.chrome.driver", "D:\\selenium\\chromedriver_win32\\chromedriver.exe");
driver = new ChromeDriver();
}
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.get("http://www.makemytrip.com/");
WebElement Depart = driver.findElement(By.id("from_typeahead1"));
WebElement Dest = driver.findElement(By.id("to_typeahead1"));
Depart.clear();
Depart.sendKeys(departCity);
robo.keyPress(KeyEvent.VK_ENTER);
Dest.sendKeys(destCity);
robo.keyPress(KeyEvent.VK_ENTER);
driver.findElement(By.id("flights_submit")).click();
}
@SuppressWarnings("null")
@DataProvider
public Object[][] getData() throws IOException {
Object data[][] = null;
fis = new FileInputStream("D:\\selenium\\data.xlsx");
workbook = new XSSFWorkbook(fis);
sheet = workbook.getSheetAt(0);
row = sheet.getRow(1);
int rowcount = sheet.getLastRowNum() - sheet.getFirstRowNum() + 1;
int colcount = row.getLastCellNum();
for (int rnum = 2; rnum <= rowcount; rnum++) {
row = sheet.getRow(rnum);
for (int cnum = 0; cnum < colcount; cnum++) {
cell = row.getCell(cnum);
data[rnum - 2][cnum] = cell.getStringCellValue();
}
}
return data;
}
}
laufen bekommen Wenn das so wäre, Sie NPE bekommen würde (ich), nicht ignoriert Test . Das passiert nur, wenn der Datensatz leer ist. –