我一直在尝试从TestNG XML套件中检索一些参数。带有testrail引用的参数被附加到因已知bug而失败的xml套件。我希望将此参数包含在生成的报告中(为此,我们使用范围报告)。我尝试了许多从xml套件中检索参数的方法,但返回的参数数量始终为零。
我尝试过使用ITestContext从xml文件中检索数据。
flush()方法在测试完成时在一个侦听器中调用,并接受ITestContext参数。我正在尝试从提供的ITestContext参数中检索参数。
public void flush( ITestContext testContext ) {
Map<String, String> parameters = ( ( (ITestContext) testContext ).getCurrentXmlTest() )
.getAllParameters();
for ( Map.Entry<String, String> entry : parameters.entrySet() ) {
warn( "testrail_case_id: " + entry.getKey() + " (id): " + entry.getValue() );
}
extent.flush();
}
这是一个xml套件示例,其中我们指定了一个参数(有时是几个),其中引用了一个bug票据。更具体地说,我正在尝试检索一个参数名为testrail_case_id的变量
<suite name="MySuite" parallel="false" thread-count="1"
junit="false" verbose="1">
<listeners>
<listener class-name="MyListener"/>
</listeners>
<test name="MyTest">
<parameter name="testrail_case_id" value="684342"/>
<classes>
<class name="MyTestClass"/>
</classes>
</test>
</suite>
问题是Map<String, String> parameters = ( ( testContext ).getCurrentXmlTest() ).getAllParameters();
总是返回零个参数(非null)。
如何从可扩展标记语言套件中检索带有testrail_case_id
的参数?
发布于 2019-06-04 11:29:29
如果只想获得一个参数,而不是Map,可以尝试如下
String browser = context.getCurrentXmlTest().getParameter("Browser");
对我来说效果很好
https://stackoverflow.com/questions/56433244
复制相似问题