【问题标题】:Passing parameters to testNG provider将参数传递给 testNG 提供者
【发布时间】:2012-06-04 16:53:38
【问题描述】:

我是新手,TestNG 文档中没有包含这些信息,如果有人可以帮助我,我想了解一些事情。

@DataProvider(name="test1")
public Object[][] provideTestParam(ITestContext context){
    String testParam = context.getCurrentXmlTest().getParameter(test_param);
    return new Object[][]{{ testParam }};
}

@Test(dataProvider="test1")
public void testData(String data){

    //...
}
  1. 有人知道test_param 是什么吗?是文件名,还是testng.xml文件中某个参数的方法?

  2. 我查看了 ITestContext 的 javadoc,但我不清楚 getParameter 是如何工作的。它是否从数据来自的 xml 文件中获取单个哈希映射?还是从数据来源的xml文件中获取所有键值对?

  3. 我想要做的就是在我的项目中存储一个 xml 文件并使用 xml 文件中的数据。将其提供给数据提供者并运行我的测试。还有其他方法吗?

  4. getParameter 能否从 testng.xml <test> 节点或 <class> 节点中获取值?

【问题讨论】:

    标签: xml testng dataprovider


    【解决方案1】:
    1. 不知道,test_param 没有出现在代码 sn-p 中。
    2. ITestContext 中公开的参数是 testng.xml 中的参数。
    3. 当然,您需要解析自己的 XML 文件,然后将您找到的内容返回为 Object[][]

    所有这些在the documentation的各个部分都有详细说明,如果您有更多问题,请随时再次提问。

    【讨论】:

    • 不,文档中没有找到“ITestContext”一词,“测试上下文”一词也没有。
    • 我在testng.org/doc/documentation-main.html 中发现了五个提及,当然,还有 Javadoc 和示例。
    • 您对塞德里克的帮助让我倍感荣幸。你是对的,我很高兴我发表了评论,因为现在我发现了这一点:“任何 \@Before 和 \@After 方法都可以声明 XmlTest 类型的参数,其中包含当前的 标记。” .极好的!另外,我只是不太理解文档中的这句话:“TestNG 让您在方法中声明附加参数。”他们提供的例子非常模糊。我最好的猜测是他们说我的测试方法看起来像这样: void testIt(XmlTest thisTest) 。听起来对吗?
    • 此注释后面是您可以添加到测试方法中并且 TestNG 将为您注入的所有参数的列表。
    • 仅以我的拙见,在您说“可以声明参数”的地方,如果您说“可以使用可选参数”,我认为不会那么混乱。
    猜你喜欢
    • 2014-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-09
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多