如何使用testNg侦听器获取当前类名和在类文件中执行的方法?

时间:2016-03-11 10:43:11

标签: java selenium-webdriver testng

我正在testNG报告中进行一些自定义,并希望获得以下格式的内容:

Map<String className, List<list_of_invoked_methods_in_a_class>

Example:

I have a classA(Methods: test1,test2), classB(Methods: test3,test4);
output will be:

Map.put("classA",List<test1,test2>);
Map.put("classB",List<test3,test4>);

我想通过使用TestNg侦听器,反射或其他方式来实现此目的。

testNG api中是否有任何监听器可以完成此任务?

1 个答案:

答案 0 :(得分:0)

使用ITestResultITestContextIMethodInstance,它们可以为您提供正在使用的班级名称和方法名称。

for (ITestResult testResult : testResultSet) {
    String methodName = testResult.getName() + "(";
    for (Object arg : testResult.getParameters()) {
        methodName += arg == null ? "" : arg.toString() + ", ";
    }

    uniqueMethodMap.add(testResult.getName());
    methodList.add(testResult.getParameters().length > 0 ?    methodName.substring(0, methodName.length() - 2) + ")" : methodName + ")");
}