`
sdyouyun
  • 浏览: 120724 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

TestNG的组管理

阅读更多
1. Groups的执行顺序。

如果选择执行某个组的Test,实际执行顺序是这样的:@BeforeClass->@BeforeGroups->@Test->@AfterGroups->@AfterClass。
如果Groups分布在多个类里,比如Test1和Test2两个类,则可能是这样子的:
Test1.@BeforeClass->@BeforeGroups->Test1.@Test->Test1.@AfterClass->
Test2.@BeforeClass->Test2.@Test->@AfterGroups->Test2.@AfterClass
另外注意,如果不声明@BeforeClass、@AfterClass是属于要执行的Groups的,则不会执行@BeforeClass、@AfterClass。

2. 再有多个分组时,慎用BeforeGroup、AfterGroups
如代码
    
    @BeforeGroups(groups = { "function", "smoketest" })
    public void beforeGroup() {
        //something
    } 
    @AfterGroups(groups = { "function", "smoketest" })
    public void afterGroup() {
        //do something
    }
    @Test(groups = { "function" })
    public void testMethod2() {
        //do something
    }
    @Test(groups = { "smoketest","function" })
    public void testMethod2() {
        //do something
    }

这样的情况,如果在执行是不指定组也就是执行全部组的话,beforeGroup会执行两次(两个组执行之前、之后各一次),AfterGroups只会执行一次(不知道什么原因)。如果要想让beforeGroup只在第一个组执行前执行一次,afterGroup在最后一个组执行完毕后执行一次,可以用一个小技巧,用一个静态变量来记录执行的次数。如:
private static int runNum=0;
@BeforeGroups(groups = { "function", "smoketest" })
public void beforeGroup() {
    if (runNum == 0) {
        runNum++;
        //do something
    }else{
        runNum++;
    }
} 
@AfterGroups(groups = { "function", "smoketest" })
public void afterGroup() {
        //do something
}


以上其实只是一种情况,如果组分布在多个类里,情况可能又会有不同,还没有仔细研究。
我总觉得TestNG在组管理这方面做得比较乱,官方的文档也没有很好的说明。尽量慎用啊……
分享到:
评论

相关推荐

    spring集成TestNG与Mockito框架单元测试方法

    TestNG和Mockito是两个在单元测试领域常用的工具,它们分别用于测试管理和模拟对象。本篇文章将深入探讨如何在Spring项目中集成TestNG和Mockito进行单元测试。 TestNG是一个强大的测试框架,它扩展了JUnit的功能,...

    基于TestNG+Mockito及自动装配注解的Spring MVC集成测试

    Mockito是一个流行的Java单元测试框架,用于创建和管理模拟对象(mock objects)。在集成测试中,我们可能不希望依赖于真实的数据库或外部服务,这时Mockito可以帮助我们模拟这些依赖,以便专注于测试目标代码的行为...

    testng-6.9.4和testng-6.8.8.zip

    TestNG由Cédric Beust创建,旨在提高测试效率并支持更复杂的测试场景,如并发测试、依赖管理和数据驱动测试。 标题中的"testng-6.9.4和testng-6.8.8.zip"指的是TestNG的两个不同版本,分别是6.9.4和6.8.8,被打包...

    eclipse-testng离线包

    综上所述,"eclipse-testng离线包"是为了在Eclipse中便捷地使用和管理TestNG测试框架而提供的离线安装资源,包含了Eclipse与TestNG集成所需的所有组件,帮助开发者高效地进行单元测试、集成测试和功能测试。

    testng-6.10.jar

    4. **数据驱动测试**:通过@DataProvider方法,TestNG可以为测试方法提供多组输入数据,实现数据驱动测试,简化了参数化测试的编写。 5. **依赖注入**:TestNG支持依赖注入,可以通过@注入注解将对象实例化并注入到...

    myeclipse 10 testng插件

    TestNG是一款强大的测试框架,由Cédric Beust创建,它是JUnit和NUnit的扩展,提供了更多高级功能,尤其在并行测试、测试分组、依赖性管理以及更详细的测试报告方面表现出色。在集成开发环境(IDE)如MyEclipse中...

    testng架包下载

    9. **测试分组**:利用`@Groups`注解,你可以将测试方法归类到不同的组,便于管理和执行。 10. **优先级和跳过测试**:`@Test(priority = N)`可以设定测试方法的执行优先级,而`@Test(enabled = false)`或`@Ignore`...

    testng测试报告模板BeautifulReport.7z

    3. **testNGpara.xml**:这可能是TestNG的测试配置文件,用于定义测试套件、测试组、测试方法等的执行顺序和参数。在TestNG中,XML配置文件可以用来指定测试的执行细节,如并发线程数、依赖关系、数据驱动测试等。...

    testng-6.8.8文件

    - **依赖性管理**:使用@test注解的dependsOnMethods属性,可以指定测试方法之间的依赖关系。 - **异常处理**:如果测试方法抛出预期的异常,TestNG会认为测试成功;如果不抛出预期的异常,则测试失败。 - **数据...

    testng插件

    3. **测试分组**: 可以将测试用例分为不同的组,便于管理和运行特定的测试集合。 4. **数据驱动测试**: TestNG支持数据驱动测试,可以使用@Parameters注解将数据作为参数传递给测试方法。 5. **异常测试**: 用户...

    TestNG插件

    TestNG插件允许用户在IDE如Eclipse或IntelliJ IDEA中无缝地编写、运行和管理TestNG测试。 TestNG的核心特性包括: 1. **并发测试**:TestNG支持多线程执行测试用例,可以同时运行不同的测试,这对于测试分布式系统...

    TestNG教程

    2. **灵活的测试结构**:TestNG允许创建更复杂和灵活的测试结构,如测试套件、测试类、测试组和方法,使得测试逻辑更加清晰。 3. **XML配置**:通过XML文件定义测试结构和参数,使得测试配置可读性强,易于管理和...

    TestNG官方文档中文版.pdf

    TestNG设计初衷是为了提供一种更为简洁和强大的测试方法,相较于JUnit,TestNG支持更多高级特性,如并行测试执行、依赖管理、数据驱动测试等。 #### 1.2 特性介绍 - **并行测试执行**:允许用户在同一时间运行多个...

    JAVA测试新技术-TESTNG

    6. **数据驱动测试**:使用“@DataProvider”注解,TestNG支持数据驱动测试,可以为同一测试方法提供多组输入数据,提高测试覆盖率。 7. **XML配置**:TestNG支持使用XML配置文件来定义测试结构,这种方式在大型...

    testng6.14.3

    TestNG的并行测试功能允许测试类、方法或测试组同时运行,极大地提高了测试效率。通过使用@test(threadPoolSize = x, invocationCount = y)可以配置并发线程数量和每个方法的执行次数。 5. **报告生成**: TestNG...

    testng 6.14 离线包

    TestNG是Java编程环境中的一款强大的测试框架,它扩展了JUnit的功能,提供了更多高级特性,如支持数据驱动测试、...TestNG的丰富功能,如测试套件、测试组、注解、报告定制等,都极大地提高了自动化测试的效率和质量。

    TestNG中文手册学习笔记

    5. 灵活的运行时配置:通过“测试组”概念,可以选择运行特定类型的测试,如快速测试、慢速测试或数据库测试。 6. 依赖管理:测试方法可以相互依赖,允许控制测试执行顺序。 7. 并行测试、负载测试和局部故障处理:...

    myeclipse2017 TestNg6.15插件

    其次,TestNG引入了分组测试的概念,允许我们根据测试的特定需求将测试用例分到不同的组中。这样,我们可以选择性地运行一组相关的测试,而不是全部测试。这对于大型项目来说,尤其有用,可以节省时间和资源。 再者...

Global site tag (gtag.js) - Google Analytics