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

Posted FserSuN

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于Idea中单测JunitTest环境运行Maven spring项目profile环境选择的主要内容,如果未能解决你的问题,请参考以下文章

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

idea怎么自定义打包命令

idea工程jdk设置问题

idea环境下建立maven工程并运行scala程序

jmeter+maven+idea 环境搭建

单测增量代码覆盖率统计方案