SpringBoot高版本修改为低版本时测试类报错解决

有时在使用idea通过Spring Initailizr创建项目时,默认只能创建最近的版本的SpringBoot项目。

这是如果想要换成版本,就可以在项目创建好了之后,在pom文件中直接将版本修改过来。

如下所示

比如在创建项目时默认的版本为2.2.2版本:

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

然后我们修改为1.5.10的低版本:

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

这时可能会遇到一个问题,那就是——在高版本时,默认的测试类是没问题可以使用的

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class SpringBootTestWebApplicationTests {

    @Test
    void contextLoads() {
        System.out.println("hello world");
    }

}

但是在更换成低版本之后,测试类将会报错,如下所示,无法导入在2.2.2高版本中使用的org.junit.jupiter.api.Test类

 此时可以做如下修改

1、删除高版本默认导入的org.junit.jupiter.api.Test类,重新导入org.junit.Test类

2、在类上添加注释@RunWith(SpringRunner.class),如下图:

 注:

  1. 通过@RunWith注解,更改测试运行器,更改使用的测试类为SpringRunner.class,使之适应spring。
  2. @RunWith(SpringRunner.class)使用了Spring的SpringRunner,以便在测试开始的时候自动创建Spring的应用上下文。其他的想创建spring容器的话,就得子啊web.xml配置classloder。 注解了@RunWith就可以直接使用spring容器,直接使用@Test注解,不用启动spring容器
  3. SpringRunner 继承了SpringJUnit4ClassRunner,没有扩展任何功能(查看源码可以看到public final class SpringRunner extends SpringJUnit4ClassRunner);使用前者,名字简短而已

3、将测试类和测试方法都修改为public

4、最后修改的测试类如下所示:

package com.susu.springboot;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringBootTestApplicationTests {

    @Test
    public void contextLoads() {
        System.out.println("hello world");
    }

}

运行结果:

原文地址:https://www.cnblogs.com/suhaha/p/12050040.html

时间: 2024-08-27 06:28:05

SpringBoot高版本修改为低版本时测试类报错解决的相关文章

将Linux中文语言修改成英文的具体操作方法及报错解决

-bash: warning: setlocale: LC_CTYPE: cannot change locale (EN_US.UTF-8) 把linux系统从中文设置英文字符集后发生以下报错 首先本系统字符集为中文UTF-8 [[email protected] ~]# more /etc/sysconfig/i18n LANG="zh_CN.UTF-8" 修改为英文UTF-8 [[email protected] ~]# vim /etc/sysconfig/i18n LANG=

Maven 项目打包及启动时的报错解决

目录 一.报错:xxx.jar中没有主清单属性 方式一.手动修改MANIFEST.MF 文件配置 方式二.使用插件并配置主函数 二.报错:Invalid or corrupt jarfile xxx.jar 分析 三.报错:java.lang.NoClassDefFoundError 分析 解决 四.知识点 一.报错:xxx.jar中没有主清单属性 方式一.手动修改MANIFEST.MF 文件配置 通过 7z 等压缩工具打开 jar 包 修改 META-INF 目录中的 MANIFEST.MF

高版本api在低版本中的兼容

直接上例子,看如何避免crash. eg:根据给出路径,获取此路径所在分区的总空间大小. 文档说明:获取文件系统用量情况,在API level 9及其以上的系统,可直接调用File对象的相关方法,以下需自行计算 API level 9及其以上,调用 File.getTotalSpace() 即可, 但是在API level 8 以下系统File对象并不存在此方法 //如下 /** * Returns the total size in bytes of the partition contain

高版本-&gt;低版本迁移,低版本客户端连接高版本数据库EXP导出报错EXP-00008,ORA-01455,EXP-00000

生产环境: 源数据库:RHEL + Oracle 11.2.0.3 目标数据库:HP-UX + Oracle 10.2.0.4 需求:迁移部分表  11.2.0.3-->10.2.0.4,若迁移范围内的有些表在目标库已经存在,则替换. 本次迁移数据量<1G. 初定方案:低版本的客户端连接到高版本数据库,用低版本导出,低版本导入. 1.采用初定方案,目标数据库所在服务器连接到源数据库,exp导出过程中报错. ZJCRNOPDB 36: sqlplus -version SQL*Plus: Rel

SQLServer笔记--如何把SQLServer数据库从高版本降级到低版本?

方法一:使用图形化操作(GUI),打开SSMS(SQL Server Management Studio) 第一步:右键你要降级的数据库,按下图选择: 第二步:在对话框中的[高级]中按如下方式设置. 第三步:把脚本保存起来,然后在低版本的SQLServer中运行脚本. 打开低版本SQLServer数据库,连接上数据库,双击脚本即可运行.或者把脚本拖到数据库的查询分析器界面([新建查询]中粘贴脚本代码即可),然后点运行. 第四步:在高版本的SQLServer中通过[任务]→[导入数据],将数据从高

使用fixed制作浮动广告(注意:解决闪屏问题,但适用于高版本浏览器,低版本的浏览器不适用)

<script language="javascript" type="text/javascript"> //隐藏广告 function closeDiv(){ document.getElementById("floatDiv").style.display="none"; } </script> <body> <!--position:fixed能够使得广告div实现滚动效果,但

怎么使用CAD版本转换器,如何将高版本CAD转低版本?

怎么使用CAD版本转换器,如何将高版本CAD转低版本?在CAD行业中,每天都会接触到CAD图纸,而且在查看CAD图纸的过程中肯定会遇到许多的问题,那就是有的时候在查看dwg格式的CAD图纸的时候,不管怎么样都打不开,小编后来才知道是CAD文件的版本太高的缘故,不知道小伙伴们有没有遇到过这样的情况,那这样我们要怎么使用CAD版本转换器,又如何将高版本的CAD转低版本呢?具体要怎么来进行操作?那下面小编就来教教大家具体操作方法. 第一步:首先,打开电脑,在电脑桌面上任意的打开一个浏览器,在浏览器的搜

jquery不同版本冲突导致低版本功能不能用

oConflict() 方法让渡变量 $ 的 jQuery 控制权. 该方法释放 jQuery 对 $ 变量的控制. 使用方法: var jq = $.noConflict();//转换控制权 jq(document).ready(function () { jq("#outside").click(function () {你的操作...... }); }); }); jquery不同版本冲突导致低版本功能不能用,布布扣,bubuko.com

SpringMVC版本报错解决办法

报错代码: 1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:context="http://www.springframework.org/schema/context" 4 xmlns:xsi="http://www.w3.or