将自定义对象传递给TestNG结果侦听器

时间:2015-11-17 02:40:26

标签: testng

我有一个TestNG结果监听器,我从我的Suite文件中引用

   <!-- Result Listener -->
<listeners>
    <listener class-name="com.test.automation.testng.ResultListener" methods="generateReport"/>
</listeners>

我使用结果监听器写入数据库并将所有测试结果存储在mysql中。这很好用,除了现在我想添加一些自定义信息,例如我在测试中只能访问的计时数据。不是实际测试的时间,所以我不能只使用开始和结束时间。

有没有办法将自定义对象传递给我的结果侦听器或套件结果对象,这样我就可以在我的侦听器中使用它来向数据库写入更多信息。

2 个答案:

答案 0 :(得分:3)

您可以使用

Reporter.getCurrentTestResult().setAttribute(name,value)

在测试中

然后使用结果对象来获取属性。

答案 1 :(得分:0)

这样的东西可以用作黑客 -

Reporter.log("Time:"+time); // in the test

然后在听众中

public void onTestFailure(ITestResult arg0) {
          Reporter.getOutput(arg0); // this will fetch that log and you can parse it and make it meaningful

}

当然,这会将所有日志作为List获取,您必须对其进行处理。