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

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

问题出现了:

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

解决方案:

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

pom代码如下:

<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。

maven 测试写入JRE参数的更多相关文章

  1. Maven测试篇

     maven的生命周期: 讲解Maven测试篇之前将首先介绍一下Maven生命周期的相关概念,如果你熟知这部分概念可以略过此小节内容. 大多数时候,我们在构建一个项目时,不外乎是对其进行清理.编译.测 ...

  2. 【IDEA】创建maven项目时,报错[FATAL_ERROR] Cannot start Maven: Cannot find JRE '1.7'

    在使用IDEA使用maven创建springMVC项目时,出现下面的错误,导致无法创建生成正常的springMVC项目结构,而只有一个pom文件: [FATAL_ERROR] Cannot start ...

  3. 新建maven项目,JRE System Library[J2SE-1.5]

    上篇博文中搭建了maven多模块项目,发现全是JRE System Library[J2SE-1.5],如图. 怎么避免这种情况呢? windows-preferences-maven-user se ...

  4. 【Shared Server Mode】测试调整shared_servers参数对数据库的影响

    本文来源于:secooler  的 <[Shared Server Mode]测试调整shared_servers参数对数据库的影响> 关于Shared Server模式的配置方法请参见文 ...

  5. [20180123]测试SQLNET.EXPIRE_TIME参数.txt

    [20180123]测试SQLNET.EXPIRE_TIME参数.txt --//曾经写过一篇linux内核网络参数测试tcp_keepalive,链接http://blog.itpub.net/26 ...

  6. Maven测试

    生命周期阶段需要绑定到某个插件的目标才能完成真正的工作,test阶段正是与maven-surefire-plugin的test目标相绑定了,这是一个 内置的绑定. 在默认情况下,maven-suref ...

  7. [深入Maven源代码]maven绑定命令行参数到具体插件

    maven的插件 我们知道Maven具体构建动作都是由插件执行的,maven本身只是提供一个框架,这样就提供了高度可定制化的功能,我们用maven命令执行比如mvn clean package这样的命 ...

  8. Maven专题4——Maven测试

    Java世界的主流测试框架是JUnit和TestNG,Maven在构建执行到特定生命周期阶段的时候,通过插件执行JUnit和TestNG的测试用例. Maven执行测试的插件是maven-surefi ...

  9. JMeter 压力测试使用CSV参数

    表示之前从没用过JMeter所以记录一下使用过程 Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测 ...

随机推荐

  1. weblogic11g 密码忘记肿么办?

    今天小编在用 weblogic 时,把密码忘记了,肿么办呢!很是着急,还不想重新建空间.那就跟我做下面的操作吧! %DOMAIN_HOME%为你 weblogic base_domain 安装目录:我 ...

  2. Spring学习总结(18)——Spring整合Mysql数据库一主多从、多主多从配置

    一.新建jdbc.properties配置文件 master.jdbc.driverClassName=com.mysql.jdbc.Driver master.jdbc.url=jdbc:mysql ...

  3. [using_microsoft_infopath_2010]Chapter8 使用InfoPath表单web部件

    本章概要: 1.配置web part 2.创建web part连接 3.创建表单参数 4.利用其它浏览器表单参数

  4. mongodb 学习笔记 07 -- 数据备份、恢复

    mongoexport 导出json或者csv格式 mongoimport 导入json或者csv mongodump 导出二进制bson结构数据以及索引信息 mongorestore 导入二进制文件 ...

  5. iOS库--.a与.framework

    一.什么是库? 库是共享程序代码的方式,一般分为静态库和动态库. 二.静态库与动态库的差别? 静态库:链接时完整地拷贝至可运行文件里.被多次使用就有多份冗余拷贝. 动态库:链接时不复制.程序执行时由系 ...

  6. 从HTTP 2.0想到的关于传输层协议的一些事

    0.HTTP协议的历史 我也不知道... 1.关于HTTP 2.0 收到了订阅的邮件,头版是说HTTP 2.0的内容,我本人不是非常关注HTTP这一块儿.可是闲得无聊时也会瞟两眼的.HTTP 2.0的 ...

  7. c10---多文件开发

    a.h // // lisi.h // 注意: .h是专门用来被拷贝的, 不会参与编译 #ifndef day05_lisi_h #define day05_lisi_h int sum(int v1 ...

  8. word2010无法显示endnote x7插件及破解endnote x7

    最近本人由于要写文章需要使用endnotex7,相比于mendeley和noteexpress,文献管理和引用我喜欢endnote x7,阅读喜欢mendeley.可是由于之前用的正版30天到期了,破 ...

  9. POJ 2665 模拟,,

    It is confirmed that these sections do not overlap with each other. 一句话 就变成水题了,,, // by SiriusRen #i ...

  10. apache配置httpd.conf的webapp根目录(基于appserv服务)

    只要修改httpd.conf中两个配置项的值即可: DocumentRoot "E:/workspacePHP/what" <Directory "E:/works ...