Java 如何将参数传递给TestNG的监听器,特定于每个测试?
任务:完成每个测试方法后,从每个测试方法和通过方法中获取特定参数,这些参数应在每个测试完成后执行。例如: 我们有两项测试:Java 如何将参数传递给TestNG的监听器,特定于每个测试?,java,automated-tests,listener,testng,Java,Automated Tests,Listener,Testng,任务:完成每个测试方法后,从每个测试方法和通过方法中获取特定参数,这些参数应在每个测试完成后执行。例如: 我们有两项测试: @Listener(Listener.java) public class UserManagementTests { public String descriptionForTest1 = "some description"; public String descriptionForTest2 = "some description"; public St
@Listener(Listener.java)
public class UserManagementTests {
public String descriptionForTest1 = "some description";
public String descriptionForTest2 = "some description";
public String successResult = "Test passed";
@Test
public void Test1(){
...
}
@Test
public void Test2(){
...
}
}
以及侦听器所在的类:
public class Listener implements ITestListener {
public void onTestSuccess(ITestResult result) {
TlXml tlXml = new TlXml();
tlXml.addThreadResult(result.getMethod().getMethodName(), true, testDescription, successResult);
}
}
}
完成每个测试后,我需要分别在参数testDescription和successResult中传入函数tlXml.addThreadResult的descriptionForTest值和“successResult”。
好的,我知道我们可以在
@Test(description = "Description")
然后就这样进去
result.getMethod().getDescription()
但是如何不传递描述参数?描述不够清楚:您想要什么,为什么?如果你知道的话,为什么不使用@Testdescription=?顺便说一句,如果您想生成自己的报告,则存在一个更好的侦听器:IReporter.@juherr 3,因为我需要传递的不仅仅是description参数。在结束测试后,我需要方法“tlXml.addThreadResult”中每个测试集的特定参数。这不是一件容易的工作。你能告诉我更多关于这个用例的情况吗?这些参数是静态的还是动态的取决于测试?它们是依赖于类还是依赖于方法?