TestNG TestListener - 如何在TestInterner beforeInvocation方法中访问testmethod参数

时间:2012-05-10 17:08:57

标签: testng

xml文件中的参数设置在<include>标记内,如下所示:

<suite name="Suite">
  <listeners>
    <listener class-name="..MyTestListener"/>
  </listeners>
  <classes>
    <class name="Foo">
      <methods>
        <include name="myTest">
          <parameter name="parameter1"  value="parameterValue"/>
        </include>
..

当然,如果参数标记位于include标记之外,我可以访问beforeInvocation方法中的test参数,例如:method.getTestMethod().getXmlTest().getParameter("parameter1")。但在这种情况下,参数必须绑定到测试方法,并且我得到null作为getParameter方法返回值。

谢谢,Stristi

2 个答案:

答案 0 :(得分:1)

我找到了问题的答案。 IInvokedMethodListener beforeInvocation方法具有ITestResult参数,该参数具有getParameters和setParameters方法。或者IHookable接口允许您处理testMethod的输入参数,并回调testMethod。

Br,Stristi

答案 1 :(得分:0)

根据dtd here,可以在<suite><test>级别定义参数。 在级别定义的参数覆盖<suite>中相同名称的参数。因此,无法在类级别关联参数。

此外,testng中的<test>表示一组类,例如here。您可以参考part of testng documentation,其中解释了testng xml命名法,如果有帮助的话。 <test>标记中的参数可以由属于它的所有类引用。