Java 关于 testng 注释传参的一个疑问,希望又大佬给点意见

roc · January 02, 2020 · Last by domains90 replied at January 09, 2020 · 1125 hits

使用testng做自动化测试
输出的报告使用reportng

因为测试用例比较多所以把测试数据都写在了excel里
每行为一个条用例

public class Test3  {

int i = 1;
public static HSSFCell Cell;
public static HSSFSheet ExcelSheet;
public static HSSFWorkbook ExcelBook;

@BeforeClass
public void before() throws IOException {
FileInputStream ExcelFile = new FileInputStream(currentPath + "/lib/excel/test.xls");
ExcelBook = new HSSFWorkbook(ExcelFile);
ExcelSheet = ExcelBook.getSheet("Demo_test");
}
@Test(invocationCount = 6 )
public void test1() {i
Cell = ExcelSheet.getRow(0).getCell(i);
String cellData = Cell.toString();

System.out.println(cellData);
i++;
}

使用的是testng的 invocationCount 标签来进行循环
但是这样打印的报告 每一次执行的用例名都为 test1

如果加上testng 的description标签的话,也只会循环打印相同的注释名

如何能让测试方法里的值 传参给description呢?

这样报告就可以每一次循环都能打印每条用例名(用例名从excel获取)

我也试过使用@Parameters标签传参,但是好像没有将参数传入进description里的

有没有大佬遇到过类似关于报告打印的问题?还又其他的解决方法么?

共收到 5 条回复 时间 点赞

可以试下extentreports的报告,里面有结合参数自定义报告中的用例名称

你是要修改test1变成对应的描述吗,test1是方法名...@test执行的是对应标记的方法,你可以读取Excel里的description来输出test1(description,description2)这样不是更好吗,或者多个@test来运行不同用例

实现下IReporter接口,加个监听完事儿。

自己实现这个接口应该就行了

public interface IHookable extends ITestNGListener {
public void run(IHookCallBack callBack, ITestResult testResult);
}

描述字段是个常量不能修改,如果想要自定义的话,还需要在reportng报告中加上一个ITestResult result;result.getParameters()的方法来获取excel里面的数据,返回类型是Object[] 数组,把数组中的数据读取然后修改报告中的setDescription("你解析出来的自定义描述")就好了

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up