Maven的单元测试没有执行的问题

这篇具有很好参考价值的文章主要介绍了Maven的单元测试没有执行的问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

今天使用 Maven 的单元测试,正常导入以下的类

org.junit.Assert;
org.junit.After;
org.junit.Before;
org.junit.Test;

在项目的根目录下执行 mvn test,结果并没有执行单元测试,也是无语了。普通的 Java 项目可以正常运行,但是 Maven Web Java 工程,通过 mvn test 命令却无法成功执行测试用例。

后来网络上查看了资料,maven-surefire-plugin 不支持以前的 Test 注解了,需要依赖 junit-jupiter-api:5.7.0,使用里面的测试注解。

具体区别如下:

注解位于 org.junit.jupiter.api 包中。

断言位于 org.junit.jupiter.api.Assertions 类中。

假设位于 org.junit.jupiter.api.Assumptions 类中。

@Before@After 不再存在;使用 @BeforeEach@AfterEach

@BeforeClass@AfterClass 不再存在;使用 @BeforeAll@AfterAll

@Ignore 不再存在;使用 @Disabled

@Category 不再存在;使用 @Tag

@RunWith 不再存在;使用 @ExtendWith

@Rule@ClassRule 不再存在;使用 @ExtendWith@RegisterExtension

所以测试用例如下所示,导入 org.junit.jupiter.api 包下的类和注解,不要导入 org.junit 包下的类和注解:

package com.example.demo02;

import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assertions;
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);
    Assertions.assertEquals(a + b, result);
  }

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

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

对应的 pom.xml 配置内容:文章来源地址https://www.toymoban.com/news/detail-621469.html

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.example.mvnbook</groupId>
	<artifactId>hello-world</artifactId>
	<version>1.0-SNAPSHOT</version>
	<name>Maven Hello World Project</name>
	<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>
</project>

到了这里,关于Maven的单元测试没有执行的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • spring boot项目 mvn test 和 mvn clean install 和 mvn test-compile 识别不到测试类无法运行单元测试

    测试类使用了junit4, spring boot 版本的test 框架自带的是junit5,不兼容。 按照spring boot 对应的版本的junit框架,修改测试类,比如我就修改了junit5。 按照: https://docs.spring.io/spring-boot/docs/2.6.3/reference/html/features.html#features.testing,强制使用junit4

    2024年02月02日
    浏览(99)
  • 安装maven后,在cmd里输入mvn -v没有反应,或者找不到路径

    问题: 在com中输入mvn -v没有反应 解决方法: 可能是你java的JDK并没有在系统环境变量中配置 1.找到自己的java JDK存放目录并复制 2.打开环境变量 3.点击新建  4.  变量名是名字,可以就和我一样 变量值是自己的JDk路径 5.光标放在Path上,点击编辑    6.把变量名拿过来用俩个 \\\"%变

    2024年02月09日
    浏览(58)
  • java程序启动时自动执行方法 @PostConstruct,单元测试@Test

    java程序启动时自动执行方法,在方法上添加@PostConstruct注解即可,可以代替单元测试junit的@Test注解 @PostConstruct //程序启动时自动执行方法 @Test //需要选中该方法运行启动(单元测试) java 代码----程序启动时自动执行方法 @PostConstruct java 代码----需要选中该方法运行启动(单元

    2024年02月05日
    浏览(44)
  • Maven 跳过单元测试

    在软件开发过程中,Maven 自动化构建工具扮演着关键角色。尤其是,它通过单元测试确保代码质量。然而,在某些情况下,开发者可能希望跳过这些测试以加快构建过程。毕竟当项目庞大的时候,整儿管编译测试打包过程是持久而漫长的,不是所有的程序员都能忍耐。 以下是

    2024年02月19日
    浏览(40)
  • maven中的单元测试

    单元测试:采用junit(单元测试框架) 单元:在java中就是指方法,一个方法就是一个单元,方法是测试的最小单位 采用junit去测试方法是否完成了要求,属于开发人员自测阶段 假设这种场景:一个main方法里面有好几个方法,而且方法之间彼此有关系,比如一个方法会调用另

    2023年04月22日
    浏览(47)
  • 在一个maven项目中使用maven命令进行junit单元测试

    如何在一个maven项目中使用maven命令进行junit单元测试? 首先确定一个maven项目的结构: 包含源代码目录src/main/java. 配置目录src/main/resources. 测试代码目录src/test. 目录结构可视化如下: 假定demo.java内容如下所示 我们要测试这个demo类, 可以在demoTest.java中写以下代码 然后就可以通过

    2023年04月21日
    浏览(55)
  • 解决mvn clean install遇到testng单元测试失败时打包也失败的问题

    看这个之前请先看这个 Jenkins执行Testng 比如我现在就有一个单元测试失败的项目 执行mvn clean install的时候就会报错 下面是我现在的pom.xml 但我们不希望这样,怎么办 新增上面这个配置,即可 再次执行mvn clean install,就算失败了也没问题,照样打包成功 如果要集成jenkins,再加

    2024年02月13日
    浏览(39)
  • 解决IntelliJ IDEA执行maven打包,执行java -jar命令提示jar中没有主清单属性

    IDEA执行 mvn clean package -DskipTest=true 命令或者借助工具的 Maven菜单 进行打包操作,然后执行 java -jar app.jar 命令后,提示jar中没有主清单属性 这个错误通常是由于生成的JAR文件缺少一个主清单属性引起的。在使用 java -jar 命令运行JAR文件时,JVM需要查找JAR文件中包含 Main-Class 属

    2024年02月05日
    浏览(64)
  • Maven工程测试:白盒测试、黑盒测试和单元测试详解

    了解如何在Maven项目中进行白盒测试、黑盒测试和单元测试。学习使用Junit编写可重复自动化测试,包括断言操作和@Before、@After注解的应用。

    2024年02月13日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包