TestNG测试方法分组执行

17 篇文章 0 订阅

前言

一个测试类当中有多个测试方法,当你只想执行其中的几个相关的测试方法,该怎么操作呢?

我们可以通过设置测试方法分组的方式来解决上述问题。

正文

1、怎么样进行分组?利用@Test注解的groups属性。

(groups = {"xx","xy"})。groups的值可以设置多个,代表该测试方法属于多个分组。

public class TestNGGroup {
    @BeforeClass
    public void beforeClass(){
        System.out.println("beforeClass");
    }
    @AfterClass
    public void afterClass(){
        System.out.println("afterClass");
    }
    @Test(groups = {"TV","Phone"})
    public void testMi(){
        System.out.println("TestNGGroup--->>>testMi");
    }
    @Test(groups = {"PC","Phone"})
    public void testLenovo(){
        System.out.println("TestNGGroup--->>>testLenovo");
    }
    @Test(groups = {"Phone"})
    public void testHuawei(){
        System.out.println("TestNGGroup--->>>testHuawei");
    }
    @Test(groups = {"Car"})
    public void testTesla(){
        System.out.println("TestNGGroup--->>>testTesla");
    }
}

执行结果:

虽然已经配置分组信息,但如果在该测试类上进行run操作,测试类中的测试方法还是将全部执行。

2、如何执行分组后的测试方法?通过xml文件来进行配置管理。

比如执行上述用例中的属于“TV”分组的测试方法,设置xml文件,文件内容如下:

<suite name="testngGroup">
    <test name="groupDemo">
        <groups>
            <run>
                <include name="TV"></include>
            </run>
        </groups>
        <classes>
            <class name="testng.TestNGGroup"></class>
        </classes>
    </test>
</suite>

增加<groups><run><include>标签,在include标签的name属性值设置待执行的测试分组“TV”。

执行xml文件,运行结果如下:

(1)只有testMi()方法属于“TV”分组,所以只执行了这一个方法。

(2)@BeforeClass和@AfterClass注解的方法没有执行,因为它们不属于任何一个分组。

我们可以给@BeforeClass和@AfterClass注解的方法加上属性(alwaysRun = true),即可正常执行。

3、如何同时执行多个分组?通过xml文件<define><include>标签来管理。

public class TestNGGroup {
    @BeforeClass(alwaysRun = true)
    public void beforeClass(){
        System.out.println("beforeClass");
    }
    @AfterClass(alwaysRun = true)
    public void afterClass(){
        System.out.println("afterClass");
    }
    @Test(groups = {"TV","Phone"})
    public void testMi(){
        System.out.println("TestNGGroup--->>>testMi");
    }
    @Test(groups = {"PC","Phone"})
    public void testLenovo(){
        System.out.println("TestNGGroup--->>>testLenovo");
    }
    @Test(groups = {"Phone"})
    public void testHuawei(){
        System.out.println("TestNGGroup--->>>testHuawei");
    }
    @Test(groups = {"Car"})
    public void testTesla(){
        System.out.println("TestNGGroup--->>>testTesla");
    }
}

xml文件:只运行属于分组TV、PC和Car的测试方法。

<suite name="testngGroup">
    <test name="groupDemo">
        <groups>
            <define name="diyGroup">
                <include name="TV"></include>
                <include name="PC"></include>
                <include name="Car"></include>
            </define>
            <run>
                <include name="diyGroup"></include>
            </run>
        </groups>
        <classes>
            <class name="testng.TestNGGroup"></class>
        </classes>
    </test>
</suite>

执行结果:

三人行,必有我师焉。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值