IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Maven的单元测试插件maven-surefire-plugin详解 -> 正文阅读

[Java知识库]Maven的单元测试插件maven-surefire-plugin详解


1.不配置 maven-surefire-plugin 插件,无法使用 Maven 的测试功能,
2.maven-surefire-plugin 插件只支持 junit-jupiter-api 构件,不支持 junit 构件

所以在 pom.xml 文件关于测试的配置内容如下:

<dependencies>
		<!-- 必须使用junit-jupiter-api构件,测试注解、断言都源于此构件-->
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-api</artifactId>
			<version>5.8.2</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
	<build>
		<pluginManagement>
			<plugins>
				<!-- 必须显式的声明测试插件,否则无法执行测试 -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-plugin</artifactId>
					<version>3.0.0-M5</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<configuration>
						<source>1.9</source>
						<target>1.9</target>
						<encoding>UTF-8</encoding>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>

如果要使用 Maven 的批量测试功能,只能把测试用例写在 src/test/java 目录下的源代码文件中。

测试案例

首先在 src/main/java 下创建一个简单的被测试的类,类的代码如下:

public class HelloMaven {
  public int add(int a, int b) {
    return a + b;
  }

  public int subtract(int a, int b) {
    return a - b;
  }
}

接着在 src/test/java 目录下创建测试用例(即用于测试的类),代码如下:

package com.example.demo02;

import org.junit.Assert;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

/**
 * description
 *
 * @author liaowenxiong
 * @date 2022/1/28 08:18
 */

public class HelloMavenTest {
  private HelloMaven hm;

  @BeforeEach
  public void setUp() {
    hm = new HelloMaven();
  }

  @Test
  public void testAdd() throws InterruptedException {
    int a = 1;
    int b = 2;
    int result = hm.add(a, b);
    Assert.assertEquals(a + b, result);
  }

  @Test
  public void testSubtract() throws InterruptedException {
    int a = 1;
    int b = 2;
    int result = hm.subtract(a, b);
    Assert.assertEquals(a - b, result);
  }

  @AfterEach
  public void tearDown() throws Exception {
    System.out.println("测试结束了!");
  }
}

接着就可以打开命令终端,切换到 pom.xml 所在目录下,输入 mvn test 命令执行测试。

surefire 插件配置

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>3.0.0-M5</version>
  <configuration>
    <excludes>
      <!-- 测试时排除指定的文件 -->
      <exclude>**/TestConstants.java</exclude>
    </excludes>
    <!--  Maven运行测试用例时,是通过调用maven的surefire插件并fork一个子进程来执行用例的。forkmode属性中指明是要为每个测试创建一个进程,还是所有测试在同一个进程中完成。 
          forkMode 可设置值有 “never”, “once”, “always” 和 “pertest”。 
          never:不创建子进程
          once:在一个进程中进行所有测试。once为默认设置,在Hudson上持续回归时建议使用默认设置。 
          pretest: 每一个测试(测试用例/测试类)创建一个新进程,为每个测试创建新的JVM是单独测试的最彻底方式,但也是最慢的,不适合hudson上持续回归 
          always:在一个进程中并行的运行脚本(即测试方法),Junit4.7以上版本才可以使用,surefire的版本要在2.6以上提供这个功能,
          其中 threadCount:执行时,指定可分配的线程数量。只和参数parallel配合使用有效。默认:5。 -->
    <forkMode>always</forkMode>
    <parallel>methods</parallel>
    <threadCount>4</threadCount>
  </configuration>
</plugin>
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-01-29 22:56:59  更:2022-01-29 22:59:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 10:49:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码