文档章节

Spring、Spring Boot和TestNG测试指南 - @OverrideAutoConfiguration

jarchan
 jarchan
发布于 2017/09/01 09:03
字数 420
阅读 107
收藏 6

码云地址

Chapter 1: 基本用法 - 使用Spring Boot Testing工具里提到:

除了单元测试(不需要初始化ApplicationContext的测试)外,尽量将测试配置和生产配置保持一致。比如如果生产配置里启用了AutoConfiguration,那么测试配置也应该启用。因为只有这样才能够在测试环境下发现生产环境的问题,也避免出现一些因为配置不同导致的奇怪问题。

那么当我们想在测试代码里关闭Auto Configuration如何处理?

  1. 方法1:提供另一套测试配置
  2. 方法2:使用@OverrideAutoConfiguration

方法1虽然能够很好的解决问题,但是比较麻烦。而方法2则能够不改变原有配置、不提供新的配置的情况下,就能够关闭Auto Configuration。

在本章节的例子里,我们自己做了一个Auto Configuration类,AutoConfigurationEnableLogger

@Configuration
public class AutoConfigurationEnableLogger {

  private static final Logger LOGGER = LoggerFactory.getLogger(AutoConfigurationEnableLogger.class);

  public AutoConfigurationEnableLogger() {
    LOGGER.info("Auto Configuration Enabled");
  }

}

并且在META-INF/spring.factories里注册了它:

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
me.chanjar.annotation.overrideac.AutoConfigurationEnableLogger

这样一来,只要Spring Boot启动了Auto Configuration就会打印出日志:

2017-08-24 16:44:52.789  INFO 13212 --- [           main] m.c.a.o.AutoConfigurationEnableLogger    : Auto Configuration Enabled

例子1:未关闭Auto Configuration

源代码见BootTest

@SpringBootTest
@SpringBootApplication
public class BootTest extends AbstractTestNGSpringContextTests {

  @Test
  public void testName() throws Exception {

  }
}

查看输出的日志,会发现Auto Configuration已经启用。

例子2:关闭Auto Configuration

然后我们用@OverrideAutoConfiguration关闭了Auto Configuration。

源代码见BootTest

@SpringBootTest
@OverrideAutoConfiguration(enabled = false)
@SpringBootApplication
public class BootTest extends AbstractTestNGSpringContextTests {

  @Test
  public void testName() throws Exception {

  }
}

再查看输出的日志,就会发现Auto Configuration已经关闭。

参考文档

© 著作权归作者所有

共有 人打赏支持
jarchan

jarchan

粉丝 60
博文 11
码字总数 8798
作品 2
崇明
技术主管
Spring Boot 和 testNG 和 eclipse背景色

通过之前的博文,我们已经验证,Spring环境下完成access数据访问没有问题。下面我们直接在Spring环境下部署我们的升级项目。 1.导入Spring Boot Spring Boot是Spring的子项目,用来解决项目配...

pandamonica
2017/09/19
0
0
eclipse上cxf与testNG的冲突

我打算在eclipse上的一个maven项目的某一个类发布,成为web service,打算使用cxf进行发布。 最初这个测试用的maven项目是这样的: 也就是说,在导入cxf之前,这个maven项目的功能是可以正常...

pandamonica
09/07
0
0
An internal error occurred during: "Building UI model". com/google/common/base/Function

版权声明:本文为 testcsdn(微wx笑) 原创文章,非商用自由转载-保持署名-注明出处,谢谢。 https://blog.csdn.net/testcsdn/article/details/78798610 An internal error occurred during: "...

微wx笑
2017/12/14
0
0
25 extentreports/allure美化测试报告

最近好多在微信问关于测试报告生成问题。其实TestNG执行结果就已经自带了测试报告,只是比较丑。 这里我就顺便推荐下另外的两种Report,但是文档我就不细写了,只大概写下用法。 extentrepo...

米阳MeYoung
08/07
0
0
Selenium和TestNG

本文档由Felipe Knorr Kuhn撰写,并根据其博客上发布的一系列文章进行改编。 建模您的测试用例 在编写测试用例之前,您需要知道如何验证以及将要验证的内容。让我们使用WordPress “创建新帖...

xmilt
08/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

驰狼课堂

http://www.chilangedu.com/

求是科技
12分钟前
0
0
jumpserver 报错"Incorrect string value

申明 本文所有内容参考自jumpserver记录命令无法入库问题 #1773 简介 jumpserver 1.4.0在jumpserver.log中大量报错,错误日志 File "/opt/jumpserver/apps/terminal/api.py", line 246, i...

zhnxin
18分钟前
2
0
用户管理相关配置文件及命令

9月19日任务 2.27linux和windows互传文件 3.1 用户配置文件和密码配置文件 3.2 用户组管理 3.3 用户管理 扩展知识 实用小工具 简单命令行下实现Linux/Windows文件互传 前提:使用远程工具Xsh...

robertt15
36分钟前
0
0
presto 架构

presto 介绍 是Facebook开源的,完全基于内存的并⾏计算,分布式SQL交互式查询引擎 是一种Massively parallel processing (MPP)架构,多个节点管道式执⾏ ⽀持任意数据源(通过扩展式Connect...

张欢19933
36分钟前
0
0
Ajax技术应用

1. 相关概述 1. ajax:即异步js与xml,可以实现客户端与服务端之间数据的异步交互。对于普通的B/S 模式是采用的同步方式,即一次请求必须等待一次服务器响应完成,而异步则是客户端发送请求后...

江左煤郎
37分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部