【问题标题】:Passing dataProvider parameter inside testng method在 testng 方法中传递 dataProvider 参数
【发布时间】:2015-07-08 15:51:24
【问题描述】:

我有两个@DataProviders:

@DataProvider(name = "smallNumbers")
@DataProvider(name = "bigNumbers")

pom.xml 中的变量

<systemPropertyVariables>
<dataP>${dataProvider}</dataP>
</systemPropertyVariables>

访问参数:

String sizeNumbers = System.getProperty("dataP");

我的测试:

@Test(dataProvider=sizeNumbers) 

测试方法中的dataProvider必须是: 常量表达式 知道如何在 @Test(dataProvider= 中传递变量吗?

【问题讨论】:

    标签: maven selenium jenkins testng pom.xml


    【解决方案1】:

    你不能这样做。只能将 dataprovider 直接传递给方法。 为什么选择这种方式从 dataprovider 注入数据?显示更多关于您的代码架构的信息,因为这看起来很奇怪。

    编辑:

    你可以这样检查:

    @DataProvider(name = "dp")
    public static Object[][] dataInject(){
      return new Object[][]{
                {sizeNumbers}
      };
    } 
    

    在“dp”中,您还可以对 ex 进行一些验证。 "isNull" 等。

    然后在测试中

    @Test(dataProvider = "dp", dataProviderClass = Xyz.class)
    public void testFirst(String input){
    //...
    }
    

    【讨论】:

    • 我正在寻找一种方法来设置 dataProvider 取决于从 jenkins 传递的参数(这是必须的); jenkins(选择参数大小)> 传递给 pom.xml maven > 参数 smallNumbers > dataProvider smallNumbers
    • 有什么办法吗?
    • 您是否有可能将 jenkins [测试数据] 的输出重定向到其他 xml?
    猜你喜欢
    • 2019-11-27
    • 2010-10-14
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多