Junit5套件执行

Posted 未来可期_Durant

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

  5、@RunWith+@SelectPackages+@IncludeTags

 

以上是关于Junit5套件执行的主要内容,如果未能解决你的问题,请参考以下文章

Junit5-木星所有测试套件@BeforeAll @AfterAll 不工作

运行测试套件无法通过 maven 在 junit5 中运行

测试套件在 JUnit5 中是不是被认为已弃用?

全网最全:Junit5的@Suite注解-上

Junit5 无法在测试中执行 shell 命令

如何将JUnit 4测试添加到JUnit 3测试套件中