TestNG Groups 例子

【本系列其他教程正在陆续翻译中,点击分类:TestNG进行查看。

【翻译 by 明明如月 QQ 605283073】

原文地址:http://websystique.com/java/testing/testng-groups-example/

上一篇:TestNG Annotations示例


本文将介绍TestNG 组测试中@BeforeGroups@AfterGroups注解的使用。

TestNG 允许我们通过组的形式来运行多个测试方法。

我们可以根据行为等将测试方法进行分组。

多个测试可以属于一个组,一个测试也可以成为多个组的一部分。

--------------------------------------

@BeforeGroups, @AfterGroups

带@BeforeGroups注解的方法将在本组内任何测试方法执行前被执行一次。

和此类似的是带@AfterGroups 注解的方法将在本组内任何测试方法执行后被执

package com.websystique.testng;
 
import org.testng.annotations.AfterGroups;
import org.testng.annotations.BeforeGroups;
import org.testng.annotations.Test;
 
public class TestNGGroupExample {
 
    @BeforeGroups("security")
    public void setUpSecurity() {
        System.out.println("setUpSecurity()");
    }
  
    @AfterGroups("security")
    public void tearDownSecurity() {
        System.out.println("tearDownSecurity()\n");
    }
 
    @BeforeGroups("database")
    public void setUpDatabase() {
        System.out.println("setUpDatabase()");
    }
  
    @AfterGroups("database")
    public void tearDownDatabase() {
        System.out.println("tearDownDatabase()\n");
    }
  
    @BeforeGroups(value="ui")
    public void setUpUI() {
        System.out.println("setUpUI()");
    }
  
    @AfterGroups(value="ui")
    public void tearDownUI() {
        System.out.println("tearDownUI()\n");
    }
 
    @Test(groups= "database")
    public void testInsert(){
        System.out.println("testInsert()");
    }
     
    @Test(groups= "database")
    public void testUpdate(){
        System.out.println("testUpdate()");
    }
 
    @Test(groups= "database")
    public void testDelete(){
        System.out.println("testDelete()");
    }
 
    @Test(groups= "security")
    public void accessHomePage() {
        System.out.println("accessHomePage()");
    }
  
    @Test(groups= "security")
    public void accessAdminPage() {
        System.out.println("accessAdminPage()");
    }
 
    @Test(groups= "ui")
    public void openConfirmationDialog() {
        System.out.println("openConfirmationDialog()");
    }
 
    @Test(groups= "ui")
    public void openFileDialog() {
        System.out.println("openFileDialog()");
    }
}

mvn clean test 或者第一篇文章提到的 TestNG eclipse 插件运行此测试:



setUpSecurity()
accessAdminPage()
accessHomePage()
tearDownSecurity()
 
setUpUI()
openConfirmationDialog()
openFileDialog()
tearDownUI()
 
setUpDatabase()
testDelete()
testInsert()
testUpdate()
tearDownDatabase()
 
PASSED: accessAdminPage
PASSED: accessHomePage
PASSED: openConfirmationDialog
PASSED: openFileDialog
PASSED: testDelete
PASSED: testInsert
PASSED: testUpdate
 
===============================================
    Default test
    Tests run: 7, Failures: 0, Skips: 0
===============================================
 
 
===============================================
Default suite
Total tests run: 7, Failures: 0, Skips: 0
===============================================

@BeforeGroups 在本组内任何测试方法执行前被调用一次。

@AfterGroups 在本组内任何测试方法执行后被调用一次。

Group 拓展:

假设我们只想执行安全和数据库相关的测试,而不是ui相关的。

我们可以使用testNG configuration xml 文件将ui排除出去。

src/test/resources文件夹下创建testng.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="tests">
  
    <test name="backend">
        <groups>
            <run>
                <exclude name="ui" />
            </run>
        </groups>
        <classes>
            <class name="com.websystique.testng.TestNGGroupExample" />
        </classes>
    </test>
  
</suite>

如果你实用的是基于maven的项目,可以配置pom.xml中的 maven-surefire-plugin  

下面是pomx.ml的配置:

ersion>
                <configuration>
                    <suiteXmlFiles>
                        <suiteXmlFile>src/test/resources/testng.xml</suiteXmlFile>
                    </suiteXmlFiles>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

右键 testng.xml file-> RunAs->TestNG Suite ]


setUpSecurity()
accessAdminPage()
accessHomePage()
tearDownSecurity()
 
setUpDatabase()
testDelete()
testInsert()
testUpdate()
tearDownDatabase()
 
 
===============================================
tests
Total tests run: 5, Failures: 0, Skips: 0
===============================================

你可以看到 ui 相关的测试方法和对应的beforeGroups/afterGroups 并没有被运行。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值