服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - 编程技术 - maven 测试写入JRE参数实例详解

maven 测试写入JRE参数实例详解

2020-09-07 15:14EthanPark 编程技术

这篇文章主要介绍了maven 测试写入JRE参数实例详解的相关资料,需要的朋友可以参考下

maven 测试写入JRE参数实例详解

项目在测试时碰到一个问题,就是JVM加载参数的问题。

web项目本身在注入配置信息的时候,读取的是本地的配置文件,但是配置文件的位置是卸载tomcat 里面配置的JAVA_OPTS里面的。

问题出现了:

JAVA_OPTS将变量写入了JRE,但是在执行maven test的时候,是没有写入JRE参数的,所以在进行诸如service等涉及到数据库的测试的时候,将无法正确加载数据库的配置,导致无法进行数据库测试。

解决方案:

使用configuration来注入参数到JRE当中,这样就可以将参数写入JRE了,然后即可读取本地的配置文件

pom代码如下:

?
1
2
3
4
5
6
7
8
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
      <forkMode>pertest</forkMode>
      <argLine>${maven.test.jvmargs}</argLine>
    </configuration>
</plugin>

maven plugin

可以使用该plugin,maven本身不提供测试的,使用的是该插件,通过注入argLine可以方便我们注入一些JVM的参数
比如我在进行spring测试的时候,因为将一些敏感信息配置到配置文件中,所以文件本身是不在项目中的,目前只能通过注入jvm参数,然后就可以通过System.getProperty来获取到对应的参数

至于forkMode是测试指定的参数。

forkMode 可设置值有 “never”, “once”, “always” 和 “pertest”。

 

参数 解释
pretest 每一个测试创建一个新进程,为每个测试创建新的JVM是单独测试的最彻底方式,但也是最慢的,不适合hudson上持续回归
once 在一个进程中进行所有测试。once为默认设置,在Hudson上持续回归时建议使用默认设置。
always 在一个进程中并行的运行脚本,Junit4.7以上版本才可以使用,surefire的版本要在2.6以上提供这个功能,其中threadCount执行时,指定可分配的线程数量。只和参数parallel配合使用有效。默认:5。

 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

原文链接:http://blog.csdn.net/ethanwhite/article/details/50498550

延伸 · 阅读

精彩推荐