在Maven2中运行单个测试用例并添加JVM参数

都说Maven2是Ant的替代品,今天稍微使用了下Maven,记录备忘。

  通过Maven单独运行一个Junit测试用例(无需配置surefire):

  mvn -Dtest=TestXXX test

  为Maven运行添加JVM参数,比如想给运行Maven的JVM分配更多内存,或者进行profiling等。有两种方法,一种是全局方法,即设置一个全局的环境变量MAVEN_OPTS。

  linux下可修改.profile或者.bash_profile文件:export MAVEN_OPTS=-Xmx1024m

  windows下可以添加环境变量MAVEN_OPTS

  这样对于所有的maven进程都会启用这个JVM参数,所以是一个全局变量,具体可在bin\mvn.bat或者mvn.sh文件中找到如下内容:(%MAVEN_OPTS%即为全局JVM参数)

  @REM Start MAVEN2

  :runm2

  %MAVEN_JAVA_EXE% %MAVEN_OPTS% -classpath %CLASSWORLDS_JAR% "-Dclassworlds.conf=%M2_HOME%\bin\m2.conf" "-Dmaven.home=%M2_HOME%" org.codehaus.classworlds.Launcher %MAVEN_CMD_LINE_ARGS%

  如果有更加specific的需求,比如要单独运行一个JUnit Testcase,并且要fork出一个新的JVM来运行,还要为这个JVM加上特定的参数,那就需要更改项目的pom.xml文件了。具体方法是,修改项目的pom.xml在<build>-><plugins>,添加一个plugin,目的是配置surefire,使得每运行一个testcase,都单独fork出一个新的JVM来运行,若还要添加JVM参数,则可通过maven.test.jvmargs来进行传递:


<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<forkMode>pertest</forkMode>
<argLine>${maven.test.jvmargs}</argLine>
</configuration>
</plugin>

  然后在<properties>标签下加入,这样maven能够知道maven.test.jvmargs这个参数存在,默认值为空,通过运行时命令行传入:

<deploy.target/>
<maven.test.jvmargs></maven.test.jvmargs>

  最后通过如下命令来运行,其中-Dtest是需要运行的testcase的名称,-Dmaven.test.jvmargs指需要传入的JVM参数,maven将这个参数传给新的fork出来的JVM运行。

  mvn -Dtest=TestXXX -Dmaven.test.jvmargs='-agentlib:xxxagent -Xmx128m' test

   

最新内容请见作者的GitHub页:http://qaseven.github.io/

   

时间: 2024-11-08 19:42:20

在Maven2中运行单个测试用例并添加JVM参数的相关文章

junit-关于CMD中运行JUnit测试用例的问题

问题描述 关于CMD中运行JUnit测试用例的问题 想在cmd中编译运行JUnit测试用例,编译成功后,发生了运行错误.是因为我用的JUnit4.5版本的TestRunner有问题吗? 解决方案 可能是你命令写错了吧: 如果回答对你有帮助,请采纳 解决方案二: 找到错误了.是没找到文件的准确位置导致编译运行失败.

CentOS中运行PostgreSQL需要修改的内核参数及配置脚本分享_PostgreSQL

PostgreSQL在CentOS上部署的时候,需要设置一些操作系统的参数,官方文档上列举了一些(传送门).除了这些,还有一些其他的设置,如单个用户允许的最大进程数,单个进程的最大句柄数等,这些一般也需要调整,否则系统会在一些条件下出现问题,或者性能下降.下面从系统资源限制类和内存参数优化类来进行说明. 系统资源限制类 1.单个用户允许的最大进程数:linux系统默认是1024,如果PG的最大连接数超过1024,则实际的连接数会小于1024(PG的postmaster进程,checkpointe

asp 操作表格行-ASP 如何获取在运行时由用户添加的表格行中单元格控件中的值?

问题描述 ASP 如何获取在运行时由用户添加的表格行中单元格控件中的值? 如图中,用户点击添加或移除按钮后,即可增加或删除一行.增加的新行就是当前最后一行的克隆行.(这部分代码JS都已实现).而"提交申请"就是将当前表格中的所有内容提交保存到数据库.**而我要问的是,由JS克隆新增加的行中各个单元格里控件的值如何获取提交?** 附:表格增加行或删除行的JS代码如下: function addRow() { var oTr = document.getElementById("

asp.net-ASP.NET中运行时输入信息没有经过规则判断就直接添加了

问题描述 ASP.NET中运行时输入信息没有经过规则判断就直接添加了 而且会出现这种情况, 解决方案 说明你的判断没起作用,你在看看它有什么隐错

如何在Ubuntu14.04的Docker容器中运行OpenVPN?

本文讲的是如何在Ubuntu14.04的Docker容器中运行OpenVPN?,[编者的话]本文来自DigitalOcean,DigitalOcean是美国的虚拟专用服务器提供商,本文主要介绍了如何在Ubuntu14.04上创建使用OpenVPN Docker容器. 介绍 本教程将介绍如何使用Docker来设置和运行OpenVPN容器. OpenVPN提供了一种方法来创建TLS加密(SSL的演进)的虚拟专用网络(VPN).它可以防止网络流量被窃取和中间人(MITM)攻击.专用网络可以用来安全地连

Apache Storm 官方文档 —— 在生产环境中运行拓扑

在生产环境集群中运行拓扑的方式与本地模式非常相似,主要包括以下几个步骤: 1) 定义拓扑(如果使用 Java 进行开发就可以使用 TopologyBuilder) 2) 使用 StormSubmitter 向集群提交拓扑.StormSubmitter 接收拓扑名称.拓扑配置信息以及拓扑对象本身作为参数,如下所示: Config conf = new Config(); conf.setNumWorkers(20); conf.setMaxSpoutPending(5000); StormSubm

Linux操作系统中运行ASP.NET 4

<在openSUSE下ASP.NET 4开发环境配置>中已经配置好了 openSUSE 11.3 操作系统. 现在,我们进入"GNOME 终端",使用 ifconfig 命令验证一下本虚拟的 IP 地址就是一开始我们在宽带路由器中为它分配的静态地址. ben@linux-nyhn:~> /sbin/ifconfig   eth0      Link encap:Ethernet  HWaddr 08:00:27:51:5B:0B               inet 

在Docker中运行桌面应用

本文讲的是在Docker中运行桌面应用,[编者的话]本文作者Jessie Frazelle,本文重要介绍了很多基于文本的或者基于GUI的Docker应用.如果你想对原作者的更多Dockerfile或者镜像感兴趣的话,可以留意本文末尾的链接. 不知道你是否熟悉Docker,它是一个流行的开源容器引擎. 许多人使用Docker来部署应用到生产环境或者在容器环境里构建他们的应用.这可以节省开发者和运维工程师彼此头疼的问题,但是我喜欢以一种非典型的方式来使用Docker. 在我的电脑里,我使用Docke

无法在Powershell 2.0命令行中为SQL Server Cmdlet添加一个管理单元

SQL Server 安装程序可安装 Windows PowerShell 和一组用来公开 Windows PowerShell 中 SQL Server 功能的 SQL Server 管理单元(snap-ins).之后,您可以对 Windows PowerShell 脚本进行编码,使其能够处理 SQL Server 对象.脚本可以在 Windows PowerShell 环境和 SQL Server Management Studio 中运行,也可以作为 SQL Server 代理作业来运行.