TESTNG IF语句不与xml中的Passed Paramters一起使用

时间:2018-03-06 12:20:32

标签: testng parameter-passing testng-dataprovider

研究:Selenium/Testng - IF statement not working when using parameter from testng.xml 已经通过上述帖子,但找不到答案。

问题: 这是我的TestNG.xml

<test name="abc">
    <classes>
        <class name="com.gunjan.automation.test.abcTesting">
            <parameter name="shareType" value="twitter, facebook"></parameter>
        </class>
    </classes>
</test>

这是我的Java文件片段,我在其中放置了测试方法

@Test(groups = {"web"}, dataProvider = "getData", priority = 7)
public void verifyShare(String shareType) {
    String data = shareType;
    if(data.equals("facebook"))
        System.out.println("its facebook");
    if(data.equals("twitter"))
        System.out.println("its twitter");
    System.out.println(shareType); }

这里是数据提供者方法

@DataProvider(name = "getData")
public Object[][] getData(ITestContext context) {
    String paramter = context.getCurrentXmlTest().getClasses().get(0).getLocalParameters().get("shareType");

    String[] paramArray = paramter.split(",");
    Object[][] finalReturn = new Object[paramArray.length][1];
    for(int i = 0; i < paramArray.length; i++)
    {
        finalReturn[i][0] = paramArray[i];
    }
    return finalReturn; }

由于 DataProvider 会返回一个object []数组,因此测试方法 verifyShare 会打印以下内容。

its twitter
twitter
its facebook
facebook

但我得到的实际输出是

its twitter
twitter
facebook

其脸书缺失。

即,它会跳过 if条件第二次时间执行测试方法 verifyShare

此外,如果我在TestNG.xml中添加三个值,例如value =&#34; twitter,facebook,whatsapp&#34;, facebook&amp;的if条件被跳过WhatsApp的价值观。

非常感谢任何帮助

1 个答案:

答案 0 :(得分:0)

知道了。 问题很愚蠢,我没有在Paramter上使用Trim()。 因此,价值是“facebook”而不是“facebook”。

:D:P