文档章节

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

jarchan
 jarchan
发布于 2017/09/01 09:03
字数 420
阅读 101
收藏 6
点赞 0
评论 0

码云地址

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

粉丝 59
博文 11
码字总数 8798
作品 2
崇明
技术主管
jenkins+testng+ant+webdriver持续集成测试

我的需求: 1、webdriver代码放在svn上; 2、hudson(jenkins)去执行构建,它从svn上下载代码,并利用testng.xml来执行我设置好的测试套件; 3、接上,将结果放在指定位置; 我的设备: 开发工...

糖糖豆豆
2014/10/17
0
0
如何将testng测试报告发送邮件

E-mail Distribution of Test Results Obtained from Selenium + TestNG:http://blog.qatestlab.com/2011/02/24/e-mail-distribution-of-test-results-obtained-from-selenium-testng/ htt......

智能小松鼠
2015/07/30
0
0
10.1 TestNG Assert类简单介绍

在继续讲WebDriver 常用元素操作方法前,我们先讲讲TestNG的Assert类。 在这之前我们已经写了很多Demo例子,但是我们回过头看写好的例子,是不是发现并不像一个完整的测试用例。 原因所有的D...

米阳MeYoung
06/20
0
0
两种方法安装TestNG Eclipse插件

两种方法可以安装TestNG Eclipse插件: 第一种,离线安装 TestNG Eclipse插件下载地址http://testng.org/doc/download.html。 包下载地址http://download.csdn.net/detail/itkong/9226441 下...

张小贤
2015/10/29
0
0
java对selenium的二次分装

代码结构 可以到github上查看 com.zlshuo.selenium.nonaming.driver:生成各浏览器相应的driver com.zlshuo.selenium.nonaming.driverinstance:获取driverinstance实例   com.zlshuo.seleni......

测试-雨
2015/01/05
0
0
4 TestNG 常用注解介绍

在第三节中不知道大伙有没有这么一个问题: 问题: 成千上万个测试用例如何管理? 上节已经讲了如何通过Selenium来打开浏览器,但是有没有发现我们的所有脚本启动都得通过JAVA的main函数来启...

米阳MeYoung
05/08
0
0
Spring Framework体系结构简介

说明:以下转自Spring官方文档,用的版本为4.3.11版本。 一、引用官方文档 所述核心容器由以下部分组成, ,,,和(弹簧表达式语言)模块。 的和模块提供框架的基本零件,包括IOC和依赖注入...

easonjim
2017/09/16
0
0
19 Web自动化测试 -- 参数化

在做自动化测试中,参数化非常常见。例如你希望你的自动化脚本能在不同的环境中执行。 当然参数化的方式非常多,例如可以把环境变量存放在文本中,excel文件中或者配置文件中等等,然后去写段...

米阳MeYoung
07/03
0
0
使用 Spring 2.5 TestContext 测试框架

Spring 2.5 TestContext 测试框架用于测试基于 Spring 的程序,TestContext 测试框架和低版本 Spring 测试框架没有任何关系,是一个全新的基于注解的测试框架,为 Spring 推荐使用该测试框架...

晨曦之光
2012/03/09
0
0
Maven实战读书笔记(10)

account-captcha的POM配置 <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......

祥林会跟你远走高飞
2014/12/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

pbgo: 基于Protobuf的迷你RPC/REST框架

https://www.oschina.net/p/pbgo

chai2010
25分钟前
0
0
rsync工具介绍、常用选项以及通过ssh同步

linux下的文件同步工具 rsync rsync是非常实用的一个同步工具,可以从a机器到b机器传输一个文件,也可以备份数据,系统默认没有这个工具,要使用命令 yum install -y rsync 安装。 rsync的命...

黄昏残影
40分钟前
0
0
OSChina 周四乱弹 —— 表妹要嫁人 舅妈叮嘱……

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @哈哈哈哈哈嗝:一定要听——The Pancakes的单曲《咁咁咁》 《咁咁咁》- The Pancakes 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :...

小小编辑
今天
145
4
流利阅读笔记30-20180719待学习

重磅:让人类得老年痴呆的竟是它? Lala 2018-07-19 1.今日导读 去年奥斯卡最佳动画长片《寻梦环游记》里有一句经典台词:“比死亡更可怕的,是遗忘”。在电影中,年迈的曾祖母会重复说一样的...

aibinxiao
今天
3
0
1.16 Linux机器相互登录

Linux机器之间以密码方式互相登录 运行命令#ssh [ip address],标准命令:#ssh [username]@ip, 如果没有写用户名,则默认为系统当前登录的用户 命令#w查看系统负载,可查看到连接到该主机的...

小丑鱼00
今天
0
0
about git flow

  昨天元芳做了git分支管理规范的分享,为了拓展大家关于git分支的认知,这里我特意再分享这两个关于git flow的链接,大家可以看一下。 Git 工作流程 Git分支管理策略   git flow本质上是...

qwfys
今天
2
0
Linux系统日志文件

/var/log/messages linux系统总日志 /etc/logrotate.conf 日志切割配置文件 参考https://my.oschina.net/u/2000675/blog/908189 dmesg命令 dmesg’命令显示linux内核的环形缓冲区信息,我们可...

chencheng-linux
今天
1
0
MacOS下给树莓派安装Raspbian系统

下载镜像 前往 树莓派官网 下载镜像。 点击 最新版Raspbian 下载最新版镜像。 下载后请,通过 访达 双击解压,或通过 unzip 命令解压。 检查下载的文件 ls -lh -rw-r--r-- 1 dingdayu s...

dingdayu
今天
1
0
spring boot使用通用mapper(tk.mapper) ,id自增和回显等问题

最近项目使用到tk.mapper设置id自增,数据库是mysql。在使用通用mapper主键生成过程中有一些问题,在总结一下。 1、UUID生成方式-字符串主键 在主键上增加注解 @Id @GeneratedValue...

北岩
今天
2
0
告警系统邮件引擎、运行告警系统

告警系统邮件引擎 cd mail vim mail.py #!/usr/bin/env python#-*- coding: UTF-8 -*-import os,sysreload(sys)sys.setdefaultencoding('utf8')import getoptimport smtplibfr......

Zhouliang6
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部