本文介绍了从testNG.xml文件中检索参数值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要从键参数名称="webdriver.deviceName.iPhone" 打印值"iPhone5" .

推荐答案

在测试类中,您基本上可以通过两种方式进行此操作(测试类本质上是一个包含一个或多个 @Test的类./配置方法)

There are basically two ways in which you do this from within a Test Class (A test class is essentially a class that houses one or more @Test/configuration methods)

  1. 通过 ITestContext 对象.您可以通过调用 Reporter.getCurrentTestResult().getTestContext()
  2. 来访问当前方法的 ITestResult 对象.
  3. 使用Native注入,其中您拥有TestNG注入一个 ITestContext 对象.有关本机注入的更多详细信息,请参见TestNG文档此处
  1. Via the ITestContext object. You can get access to the current method's ITestResult object by calling Reporter.getCurrentTestResult().getTestContext()
  2. Using Native injection wherein you have TestNG inject a ITestContext object. For more details on native injection please refer to the TestNG documentation here

这里有一个示例,展示了这两种方法的作用.

Here's a sample that shows both these in action.

import org.testng.ITestContext;
import org.testng.Reporter;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

public class SampleTestClass {

  private static final String KEY = "webdriver.deviceName.iPhone";

  @BeforeClass
  public void beforeClass(ITestContext context) {
    String value = context.getCurrentXmlTest().getParameter(KEY);
    System.err.println("webdriver.deviceName.iPhone = " + value);
  }

  @Test
  public void testMethod() {
    String value = Reporter.getCurrentTestResult().getTestContext().getCurrentXmlTest().getParameter(KEY);
    System.err.println("webdriver.deviceName.iPhone = " + value);
  }
}

这篇关于从testNG.xml文件中检索参数值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-31 12:59