SpringBoot单元测试使用@Test没有run方法的解决方案

如果在使用SpringBoot进行单元测试时,使用Junit的@Test注解却出现了"No tests found with test runner 'JUnit 4'"的错误,则有可能是JUnit和SpringBoot版本不匹配所致。下面是解决方案的完整攻略。

确认版本

首先确认自己使用的JUnit和SpringBoot版本。在pom.xml文件中找到对应的依赖,例如:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <scope>test</scope>
</dependency>

以上依赖中,SpringBoot版本一般与spring-boot-starter-parent的版本一致,可以在pom.xml文件中找到:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.5.1</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

而Junit版本则在junit:junit依赖中。

确认版本后,可以查看官方文档或者网络资源来确定JUnit和SpringBoot版本之间是否存在不兼容的问题。

解决方案

一般情况下,解决方案分为两种:一种是升级JUnit版本,另一种是使用与当前版本兼容的SpringBoot版本。具体做法如下:

升级JUnit版本

JUnit 5更加兼容Spring 5及以上版本,因此可以尝试升级Junit版本。具体方法是在pom.xml文件中修改junit:junit的版本:

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>5.7.1</version>
    <scope>test</scope>
</dependency>

升级后,可以尝试使用JUnit 5的注解,例如@org.junit.jupiter.api.Test

使用与当前版本兼容的SpringBoot版本

如果升级JUnit版本无法解决问题,可以尝试换用与当前JUnit版本兼容的SpringBoot版本。具体做法是在pom.xml文件中修改org.springframework.boot:spring-boot-starter-test的版本:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <version>2.4.6</version>
    <scope>test</scope>
</dependency>

修改后,可以使用@org.junit.Test注解进行单元测试。

示例

下面是两条示例说明:

示例1

假设当前使用的SpringBoot版本是2.5.1,而JUnit版本是4.13.2。在使用@Test注解时出现了问题,错误信息为"No tests found with test runner 'JUnit 4'"。

为了解决问题,我们可以升级JUnit版本。在pom.xml文件中修改junit:junit的版本:

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>5.7.1</version>
    <scope>test</scope>
</dependency>

修改后,可以使用JUnit 5的注解进行单元测试,例如@org.junit.jupiter.api.Test

示例2

假设当前使用的JUnit版本是4.13.2,而SpringBoot版本是2.3.12.RELEASE。在使用@Test注解时出现了问题,错误信息为"No tests found with test runner 'JUnit 4'"。

为了解决问题,我们可以换用与当前JUnit版本兼容的SpringBoot版本。在pom.xml文件中修改org.springframework.boot:spring-boot-starter-test的版本:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <version>2.3.12.RELEASE</version>
    <scope>test</scope>
</dependency>

修改后,可以使用@org.junit.Test注解进行单元测试。

以上就是“SpringBoot单元测试使用@Test没有run方法的解决方案”的完整攻略,希望能对大家有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot单元测试使用@Test没有run方法的解决方案 - Python技术站

(0)
上一篇 2023年6月26日
下一篇 2023年6月26日

相关文章

  • 深入了解Spring中Bean的作用域和生命周期

    当我们在使用Spring框架的时候,Bean是必不可少的组件之一,它们是构成应用程序的核心基础。在本篇文章中,我将会深入探讨Spring中的Bean的作用域和生命周期相关的知识点,包括不同作用域的分类以及Bean存在的生命周期,希望读者通过本篇文章可以获得对于Spring中Bean作用域和生命周期的更深入的认识。 什么是Bean的作用域? Bean的作用域指…

    other 2023年6月27日
    00
  • MySQL中字段类型char、varchar和text的区别

    MySQL中字段类型char、varchar和text是常用的字符串类型,它们在存储及使用方式上有所不同。本篇攻略将详细介绍它们的区别。 char类型 char是一种定长字符串类型,其长度在创建表时定义,如果插入的字符串长度小于定义的长度,会在后面自动补空格。例如,如果一个char(10)类型的字段保存”abc”,则该字段会存储为”abc “,共10个字符,…

    other 2023年6月25日
    00
  • JavaScript判断用户名和密码不能为空的实现代码

    下面是详细讲解JavaScript判断用户名和密码不能为空的实现代码的完整攻略。 1. 判断用户名和密码是否为空 在表单中,我们需要通过JavaScript来对用户输入的用户名和密码进行非空校验。具体的实现方式可以通过以下步骤进行: 获取到用户名和密码输入框的值。 javascript const username = document.getElement…

    other 2023年6月27日
    00
  • JAVA学习笔记:注释、变量的声明和定义操作实例分析

    JAVA学习笔记:注释、变量的声明和定义操作实例分析 1. 注释 在Java中,注释是用来对代码进行解释和说明的。Java支持三种类型的注释: 单行注释:以//开头,用于注释单行代码。 多行注释:以/*开头,以*/结尾,用于注释多行代码。 文档注释:以/**开头,以*/结尾,用于生成API文档。 示例: // 这是一个单行注释 /* 这是一个 多行注释 */…

    other 2023年8月9日
    00
  • C语言数组与地址、数组名到底是什么详解

    下面我会详细讲解“C语言数组与地址、数组名到底是什么”的完整攻略。 什么是数组 在 C 语言中,数组是同一类型数据元素的集合,这些元素在内存中是连续排列的。数组有一个固定大小,一旦被创建,就不能再改变它的大小。数组中的元素可以通过下标访问,下标可以为整数或表达式。 数组与地址 在 C 语言中,数组名代表数组第一个元素的地址。例如,对于下面的数组: int a…

    other 2023年6月25日
    00
  • 用html制作日历表

    用HTML制作日历表 HTML是一种非常流行的网页制作语言,除了可以编写网页的文本内容,还可以利用HTML标签来设计网页结构、排版和样式。其中,制作日历表是一个非常有趣的HTML项目,不仅可以丰富网页的内容,也可以提高网页设计的能力。 制作一个简单的日历表 首先,我们来看一下如何利用HTML标签制作一个简单的日历表。 示例代码如下: <table&gt…

    其他 2023年3月28日
    00
  • Python基础知识之变量的详解

    Python基础知识之变量的详解 在Python中,变量是用来存储数据的容器。它们可以存储各种类型的数据,如整数、浮点数、字符串等。本文将详细介绍Python中变量的定义、赋值、命名规则以及常见的变量操作。 变量的定义和赋值 在Python中,变量的定义和赋值可以在同一行完成。变量的定义使用等号(=)进行赋值操作。例如: x = 10 上述代码将整数值10赋…

    other 2023年8月8日
    00
  • React的生命周期详解

    当我们在使用React框架开发应用程序时,理解React生命周期方法的含义和使用方法就变得至关重要了。React生命周期由一系列的方法组成,可以在组件不同的生命周期阶段调用。掌握React生命周期可以帮助我们更好地管理组件的状态和行为。下面是React生命周期详解的完整攻略: 1. 生命周期概述 React生命周期可以划分为三个阶段: 挂载阶段:组件在创建以…

    other 2023年6月27日
    00
合作推广
合作推广
分享本页
返回顶部