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,两个测试类的内容是一样的

    Junit5套件执行

 

 测试类:

package testcasedemo;

import org.junit.jupiter.api.*;

public class TestJunit5Demo {


    @Test
    void fun(){
        System.out.println("fun");
    }


}

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

Junit5套件执行

 

 套件类:

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 {
}

 测试结果:

Junit5套件执行

 

  2、@RunWith+@SelectPackages+@IncludePackages

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

Junit5套件执行

 

   套件类:

Junit5套件执行

 

测试结果:

Junit5套件执行

  3、@RunWith+@SelectPackages+@ExcludePackages

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

  套件类:

Junit5套件执行

  测试结果:

Junit5套件执行

 

  4、@RunWith+@SelectPackages+@IncludeClassNamePatterns

  5、@RunWith+@SelectPackages+@IncludeTags

 

上一篇:写一个判断是否构成三角形的程序


下一篇:Junit5单元测试框架使用方法