从 testNG.xml 文件中检索参数值
我想从键 parameter name ="webdriver.deviceName.iPhone" 打印值 "iPhone5" .
I want to print the value "iPhone5" from the key parameter name ="webdriver.deviceName.iPhone" .
推荐答案
基本上有两种方法可以在测试类中执行此操作(测试类本质上是一个包含一个或多个 @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)
- 通过
ITestContext
对象.您可以通过调用Reporter.getCurrentTestResult().getTestContext()
来访问当前方法的 - 使用原生注入,其中您有 TestNG 注入
ITestContext
对象.有关本地注入的更多详细信息,请参阅 TestNG 文档此处
ITestResult
对象- Via the
ITestContext
object. You can get access to the current method'sITestResult
object by callingReporter.getCurrentTestResult().getTestContext()
- 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);
}
}
相关文章