我正在使用TestNG DataProvider来读取一个名为ReadData的类中包含1017个测试用例和214列的datapool.xls文件。
然后,我将这214个字符串参数传递到另一个名为EnterData的类中的@Test注释中。
我知道为什么它显示运行的测试总数是整个数据池,因为它在技术上通过并运行了数据池中的所有内容,我只是不知道如何只显示实际运行的测试数量。
基本上,我正在寻找一种可能将@Test注释本身放在for循环中的方法?...
编辑:
这是我目前用于读取ReadAutoData类中数据池的代码:
然而,它仍然显示1017个测试已运行。
然后,我将这214个字符串参数传递到另一个名为EnterData的类中的@Test注释中。
@Test(dataProvider="autodata", dataProviderClass = ReadAutoData.class)
public void autoentry(String Quote, String Garage_Zip, etc...) {
我在@Test中创建了一个for循环,仅执行某些迭代(比如1-10),这确实可以通过总共只输入10个测试用例来实现。但是问题在于,在运行结束时,它仍然显示“Total tests run: 1017”,而不仅仅是由于for循环而实际执行的那10个测试用例。
// Start for loop for entering auto policies
for (int a = start; a <= end; a++)
{
if (quote == a)
{
System.out.println("Tier = " + Tier);
}
}
我知道为什么它显示运行的测试总数是整个数据池,因为它在技术上通过并运行了数据池中的所有内容,我只是不知道如何只显示实际运行的测试数量。
基本上,我正在寻找一种可能将@Test注释本身放在for循环中的方法?...
编辑:
这是我目前用于读取ReadAutoData类中数据池的代码:
@DataProvider(name = "autodata")
public static Object[][] autodata() {
Object[][] arrayObject = getExcelData("C:/dev/AutoDP.xls","NON-COMBO-DP");
return arrayObject;
}
/**
* @param File Name
* @param Sheet Name
* @return
*/
public static String[][] getExcelData(String fileName, String sheetName) {
String[][] arrayExcelData = null;
try {
FileInputStream fs = new FileInputStream(fileName);
Workbook wb = Workbook.getWorkbook(fs);
Sheet sh = wb.getSheet(sheetName);
int totalNoOfCols = sh.getColumns();
int totalNoOfRows = sh.getRows();
arrayExcelData = new String[totalNoOfRows-1][totalNoOfCols];
for (int i= 1 ; i < totalNoOfRows; i++) {
for (int j=0; j < totalNoOfCols; j++) {
arrayExcelData[i-1][j] = sh.getCell(j, i).getContents();
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
e.printStackTrace();
} catch (BiffException e) {
e.printStackTrace();
}
return arrayExcelData;
}
编辑2:
目前为止,在1017个测试用例中,我已经通过在for循环的开头添加以下内容,使其显示1007个跳过:
// Start for loop for entering auto policies
for (int a = start; a <= end; a++)
{
if (quote < start) throw new SkipException("Testing skip.");
if (quote > end) throw new SkipException("Testing skip.");
if (quote == a)
{
System.out.println("Starting Iteration = " + Quote);
然而,它仍然显示1017个测试已运行。