Idea中单测JunitTest环境运行Maven spring项目profile环境选择

1 背景

Idea单测4.xSpring项目常见一种写法如下

  • @RunWith
  • applicationContext
  • AbstractTransactionalJUnit4SpringContextTests
@RunWith(SpringJUnit4ClassRunner.class)
@Rollback(false)
@ContextConfiguration(locations = {"classpath:/applicationContext.xml"})
public abstract class xxTest extends AbstractTransactionalJUnit4SpringContextTests {

为了进行多环境配置,常见的有两种做法

  • 多profile,每个profile中只包含属性文件,xml模配置文件只有一套。通过maven模版替换插件根据环境生成不同环境下的xml文件。常见插件 - maven autoconfig
  • 多profile,每个profile中同时包含属性描述文件(.properties)和xml配置文件。

本文对这两种方式在单测环境下的选择进行总结。

2 多profile与maven模版插件

2.1 项目结构

  • 不同profile中的属性配置
  • xml.vm模版文件,只有一套
    在这里插入图片描述

spring是目标位置,可以配置一份默认文件。当模版替换插件运行后,会将目标文件替换为不同环境下的xml配置文件。

在这里插入图片描述

2.2 环境选择

默认情况下xml配置不存在,因此需要先执行编译,并选择相应的配置环境,随后可运行测试,则以对应环境的配置进行测试。

1.mvn compile -Ptest

  • autoconfig插件生成配置文件

2.运行测试时环境环境调整

显然xml配置可以指定为我们日常使用的线下测试配置。这种线上在编译打包时选择环境即可。

3 多profile 多配置xml配置文件

这种结构比较常见。spring profile设置有多种形式[1]。我们通过idea建立的是maven工程,可以通过idea的profiles面板设置[2]。当我们通过idea构建[3]后,会在构建输出目录生成编译后的class文件和对应环境的资源文件。 最后我们再进行测试,测试启动后就通过对应环境的配置进行测试。

不同环境文件的生成可以通过清理、重新构建查看构建输出目录来观察。

在这里插入图片描述

在这里插入图片描述

4 总结

多profile环境,有多种选择某环境profile的方式。

首先了解有哪些方式,这些方式执行的优先级和使用场景。

其次,由于我们使用的是idea,就要想到当前环境下,idea执行一个测试前做哪些事情。随后查阅idea 官方说明文档,就能确定在idea中一个maven 工程是有哪些选择profile的方式。

[1].https://www.baeldung.com/spring-profiles
[2]. idea maven profile,https://www.jetbrains.com/help/idea/work-with-maven-profiles.html
[3].构建输出文件,https://www.jetbrains.com/help/idea/compiling-applications.html#compilation_output_folders

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值