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),如下图:

注:
- 通过@RunWith注解,更改测试运行器,更改使用的测试类为SpringRunner.class,使之适应spring。
- @RunWith(SpringRunner.class)使用了Spring的SpringRunner,以便在测试开始的时候自动创建Spring的应用上下文。其他的想创建spring容器的话,就得子啊web.xml配置classloder。 注解了@RunWith就可以直接使用spring容器,直接使用@Test注解,不用启动spring容器
- 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");
} }
运行结果:

SpringBoot高版本修改为低版本时测试类报错解决的更多相关文章
- 关于使用CodeFirst,修改类或上下文时操作数据库报错解决方法
在操作已经创建好的数据库时,若是添加新的实体类或者修改原有数据库上下文,会报如下错误: The model backing the 'StudentDbContext' context has cha ...
- 将Linux中文语言修改成英文的具体操作方法及报错解决
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...
- vue移动端项目vw适配运行项目时出现"advanced"报错解决办法。
Module build failed: Error: Cannot load preset "advanced". Please check your configuration ...
- 高版本->低版本迁移,低版本客户端连接高版本数据库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,若 ...
- 高版本api在低版本中的兼容
直接上例子,看如何避免crash. eg:根据给出路径,获取此路径所在分区的总空间大小. 文档说明:获取文件系统用量情况,在API level 9及其以上的系统,可直接调用File对象的相关方法,以下 ...
- 如何把SQLServer数据库从高版本降级到低版本
如何把SQLServer数据库从高版本降级到低版本 编写人:CC阿爸 2015-4-7 近期在给一个客户推行ECM系统时,基本客户的硬件环境,我们为其安装的为SQL2008 64位的数据库系统.在安装 ...
- SQLserver 数据库高版本无法还原到低版本的数据解决方法
sql server 数据库的版本只支持从上往下兼容.即高版本可以兼容低版本 .低版本不能兼容低版本.通常我们在开发时会用比较高的版本.但是部署到客户那边可能他们的数据库版本会比较低. 我们可以通过导 ...
- 将mssql数据库高版本迁移到低版本
将mssql数据库高版本迁移到低版本 在低版本目标数据库中创建目标空数据库[TargetDb] ,注意新建数据库即可,不要创建任何表 在低版本数据库中,选中[服务器对象=>链接服务器] 右键[新 ...
- SpringMVC版本报错解决办法
报错代码: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http:// ...
随机推荐
- asp.net core web应用以服务的方式安装运行
目录 一.方案:使用Microsoft.Extensions.Hosting.WindowsServices实现: 一.方案:使用Microsoft.Extensions.Hosting.Window ...
- PlayJava Day025
JTable 用JTable类可以以表格的形式显示和编辑数据 JTable类的对象并不存储数据,它只是数据的表现 MVC 数据.表现和控制三者分离,各负其责 M = Model(模型) V = Vie ...
- nodejs环境使用Typeorm连接查询Oracle
首先是typeorm的官方地址, 国内有人翻了中文版,不保证时效性 ·通过npm安装下列包: typeorm //typeorm连接数据库 @types/node //类型系统 typescript ...
- 编译原理之非确定的自动机NFA确定化为DFA
1.设有 NFA M=( {0,1,2,3}, {a,b},f,0,{3} ),其中 f(0,a)={0,1} f(0,b)={0} f(1,b)={2} f(2,b)={3} 画出状态转换矩阵 ...
- SQL Server 之事务执行,让语句在事务中执行
BEGIN TRAN BEGIN TRY DELETE FROM dbo.表 INSERT INTO dbo.表( Id, 字段....) SELECTId,字段... F ...
- Centos手动安装PHP
下载PHP的源码,我下的是7.2版本,看了一下安装的参数太多了,也没有时间依次了解每个参数的意思,直接从网上复制了一个,先尝试安装起来.并记录一下步骤,基本的步骤就是解压.配置.编译.运行.1.下载P ...
- Cocos2d-x 3.2 的内存管理详解
目标读者:了解 Cocos2d-x 中的节点以及节点树,了解引用计数,了解游戏主循环等概念. 本文首先介绍 Cocos2d-x 3.2 中内存管理的作用,以及各个作用的应用.借由通俗易懂的解释来了解内 ...
- CodeForces-1265E(期望)
题意 有1~n镜子,每个镜子说你漂亮的概率是pi/100,如果第i个回答你漂亮那么就一直问到第n个说漂亮为止,否则重新从1开始问,一天只问一个镜子,问直到镜子n说你漂亮的期望天数. 思路 设Ei为问到 ...
- Os-HackNos-Report
实验主机:Os-hackerNos靶机一台/Kali linux攻击机一台 实验网络:桥接网络 实验目标:获取靶机的Root权限 难易程度:简单 前期工作: 1:下载Virtualbox虚拟化软件(也 ...
- VSCode 使用 ESLint + Prettier 来统一 JS 代码
环境: VSCode 1.33.1 Node.js 8.9.1 一.ESLint 1.介绍 ESLint是最流行的JavaScript Linter. Linter 是检查代码风格/错误的小工具.其他 ...