TestNG-parameter 传参

java代码

@Test
public class TestLala {

    @Parameters({"appPackage","appActivity"})
    public void parameter(String appPackage,String appActivity) {
        System.out.println("应用包名="+appPackage);
        System.out.println("应用启动页面="+appActivity);
    }
}

testng.xml代码(其中parameter可以写在suite里面,也可以写在Test里面)

<suite name="TestWeChat" parallel="tests" thread-count="1">
    <parameter name="appPackage" value="com.tencent.mm"/>
    <parameter name="appActivity" value="com.tencent.mm.ui.LauncherUI"/>
    <test name="WeChat">
        <classes>
            <class name="com.tencent.mm.test.TestLala"/>
        </classes>
    </test>
</suite>

这里主要记录一下我遇到的一个问题。上面代码都写好后,我无论怎么运行都无法将参数正常传递,java里面的parameter方法根本无法执行。但是如果我在类里面再加一个方法,例如:

@Test
public class TestLala {

    public void test() {
        System.out.println("看这里");
    }

    @Parameters({"appPackage","appActivity"})
    public void parameter(String appPackage,String appActivity) {
        System.out.println("应用包名="+appPackage);
        System.out.println("应用启动页面="+appActivity);
    }
}

test方法内的“看这里”是可以输出的,我就很奇怪了,为什么parameter方法无法成功传值,找了很,很,很久发现,pom文件里面需要加这样一段代码:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.17</version>
            <configuration>
                <suiteXmlFiles>
                    <!--<suiteXmlFile>./src/test/resources/testng.xml</suiteXmlFile>-->
                    <suiteXmlFile>testng.xml</suiteXmlFile>
                </suiteXmlFiles>
            </configuration>
        </plugin>
    </plugins>
</build>

这个是指定执行哪个xml文件的,如果你的xml文件在根目录,那 <suiteXmlFile>testng.xml</suiteXmlFile> 这样写就ok;如果你的xml文件在其他目录,那就将目录列出来,类似于这样 <suiteXmlFile>./src/test/resources/testng.xml</suiteXmlFile> 

不过我没搞懂为什么其他的方法都可以执行,只有parameter不行,没有找到具体原因。







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值