• Junit5套件执行


    一、前言

       在我们做自动化的时候,用例分类通常有冒烟测试用例和回归测试用例,或者是分环境的sit、uat和线上环境。那么我们怎么来实现此功能呢,junit5提供了一个比较好的解决方案。

     二、pom文件依赖导入

    <dependencies>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>5.6.2</version>
        </dependency>
        <dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-runner</artifactId>
            <version>1.6.2</version>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>RELEASE</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-launcher</artifactId>
            <version>1.6.2</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>5.6.2</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.vintage</groupId>
            <artifactId>junit-vintage-engine</artifactId>
            <version>5.6.2</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-params</artifactId>
            <version>5.6.2</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    三、相关注解

     注解  作用
     @RunWith(JUnitPlatform.class)  执行套件
     @SelectPackages({"packageA","packageB"}) 创建测试套件 
     @SelectClasses({a.class,b.class,c.class})  创建测试套件
     @IncludePackages("PackageName")  过滤需要执行的测试包
     @ExcludePackages("PackageName")  过滤不需要执行的测试包
     @IncludeClassNamePatterns  过滤需要执行的测试类
     @ExcludeClassNamePatterns  过滤不需要执行的测试类
     @IncludeTags("sit")  过滤需要执行的测试方法
     @ExcludeTags("prod")  过滤不需要执行的测试方法

    四、案例演示

      1、@RunWith+@SelectPackages

        说明:利用 @RunWith+@SelectPackages 将包中测试类依次运行

        有两个测试包,tecacasedemo和testcasedemo1,里面的测试类分别是TestJunit5Demo和TestJunit5Demo1,两个测试类的内容是一样的

        

     测试类:

    package testcasedemo;
    
    import org.junit.jupiter.api.*;
    
    public class TestJunit5Demo {
    
    
        @Test
        void fun(){
            System.out.println("fun");
        }
    
    
    }

      此外还有套件包和套件类,suit为套件包,TestRunWithDemo为套件类

     套件类:

    package suit;
    
    
    import org.junit.platform.runner.JUnitPlatform;
    import org.junit.platform.suite.api.SelectPackages;
    import org.junit.runner.RunWith;
    
    
    @RunWith(JUnitPlatform.class)
    @SelectPackages({
            "testcasedemo",
            "testcasedemo1"
    })
    public class TestRunWithDemo {
    }

     测试结果:

      2、@RunWith+@SelectPackages+@IncludePackages

        说明:@RunWith+@SelectPackages+@IncludePackages配合使用过滤出需要执行的测试包testcasedemo1.demo1

       套件类:

    测试结果:

      3、@RunWith+@SelectPackages+@ExcludePackages

        说明:@RunWith+@SelectPackages+@ExcludePackages配合使用过滤出不需要执行的测试包testcasedemo1.demo1

      套件类:

      测试结果:

      4、@RunWith+@SelectPackages+@IncludeClassNamePatterns

      说明:将 testcasedemo 包下的 TestJunit5Demo 和 testcasedemo1.demo1所有测试类过滤出来并执行

    套件类:

     测试结果:

      5、@RunWith+@SelectPackages+@IncludeTags

    说明:过滤出包下的所有包含Tag的测试方法

    操作:在testcasedemo1.demo1.TestDemo1的方法testDemo1上加上注解@Tag

    套件类:

     测试结果:

    参考文档:

    Junit5 架构、新特性及基本使用(常用注解与套件执行)

    知道、想到、做到、得到
  • 相关阅读:
    堆和栈的区别!
    产品经理和程序员的爱恨情仇
    字符串MD5加密运算
    事件驱动模型。。。。有时间弄
    Apache服务器httpd.exe进程占用cpu超过50%的解决方法
    ZigBee Xbee S2通讯设置
    pipe-filter 真难找啊
    javacomm64位用不了,可以使用RXTXcomm for x64
    导入 sun.net.TelnetInputStream; 报错
    linux下gedit读取txt乱码解决办法
  • 原文地址:https://www.cnblogs.com/Durant0420/p/14836502.html
Copyright © 2020-2023  润新知