Selenium TestNG正在跳过该方法";MakemytripHome“;虽然没有依赖关系。为什么不执行?
我已经使用TestNG编写了以下测试用例,但是它跳过了MakemyTrip测试用例。我不知道为什么。没有依赖关系,测试数据保持在正确的路径上 为什么TestNG不执行它Selenium TestNG正在跳过该方法";MakemytripHome“;虽然没有依赖关系。为什么不执行?,selenium,selenium-webdriver,testng,testng-dataprovider,Selenium,Selenium Webdriver,Testng,Testng Dataprovider,我已经使用TestNG编写了以下测试用例,但是它跳过了MakemyTrip测试用例。我不知道为什么。没有依赖关系,测试数据保持在正确的路径上 为什么TestNG不执行它 public class Secattempt { static FileInputStream fis; static XSSFWorkbook workbook; static XSSFSheet sheet; static XSSFRow row; static XSSFCell c
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;
}
}
公共类{
静态文件输入流fis;
静态XSSF工作簿;
静态XSSF表;
静态XSSFRow行;
静态XSSFCell电池;
@测试(dataProvider=“getData”)
public void MakemytripHome(字符串departCity、字符串destCity、字符串浏览器)引发AWTException{
机器人机器人=新机器人();
网络驱动程序;
if(browser.equals(“firefox”)){
驱动程序=新的FirefoxDriver();
}否则{
System.setProperty(“webdriver.chrome.driver”,“D:\\selenium\\chromedriver\u win32\\chromedriver.exe”);
驱动程序=新的ChromeDriver();
}
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
驱动程序。获取(“http://www.makemytrip.com/");
WebElement Depart=driver.findElement(By.id(“from_typeahead1”);
WebElement Dest=driver.findElement(By.id(“to_typeahead1”);
离开;
出发。发送钥匙(出发城市);
机器人按键(KeyEvent.VK_ENTER);
目的地发送键(目的地城市);
机器人按键(KeyEvent.VK_ENTER);
driver.findElement(By.id(“航班提交”))。单击();
}
@抑制警告(“空”)
@数据提供者
公共对象[][]getData()引发IOException{
对象数据[][]=null;
fis=新文件输入流(“D:\\selenium\\data.xlsx”);
工作簿=新XSSF工作簿(fis);
工作表=工作簿。getSheetAt(0);
行=表。获取行(1);
int rowcount=sheet.getLastRowNum()-sheet.getFirstRowNum()+1;
int colcount=row.getLastCellNum();
for(int rnum=2;rnum我认为这是因为您没有初始化数据对象。这就是数据为空的原因。在for循环之前使用下面的一个
data=new Object[rowcount][colcount];
请删除此@SuppressWarnings(“null”),它将在没有上述代码的情况下将数据显示为null。与其抑制,不如找出问题所在
谢谢,,
Murali您试图从数据提供程序返回Null,因为数据[][]未初始化为任何内容。您需要使用以下代码:
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();
data=new Object[rowcount][colcount];
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;
对象数据[][]=null;
fis=新文件输入流(“D:\\selenium\\data.xlsx”);
工作簿=新XSSF工作簿(fis);
工作表=工作簿。getSheetAt(0);
行=表。获取行(1);
int rowcount=sheet.getLastRowNum()-sheet.getFirstRowNum()+1;
int colcount=row.getLastCellNum();
数据=新对象[rowcount][colcount];
对于(int rnum=2;rnum)如果是这样的话,您将得到一个NPE(我得到了),而不是一个被忽略的测试。只有当数据集为空时才会发生这种情况。