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 架构、新特性及基本使用(常用注解与套件执行)

posted @ 2021-06-01 18:45  未来可期_Durant  阅读(1068)  评论(0编辑  收藏  举报