在Maven2中運(yùn)行單個(gè)測(cè)試用例并添加JVM參數(shù)
都說(shuō)Maven2是Ant的替代品,今天稍微使用了下Maven,記錄備忘。
通過(guò)Maven單獨(dú)運(yùn)行一個(gè)Junit測(cè)試用例(無(wú)需配置surefire):
mvn -Dtest=TestXXX test
為Maven運(yùn)行添加JVM參數(shù),比如想給運(yùn)行Maven的JVM分配更多內(nèi)存,或者進(jìn)行profiling等。有兩種方法,一種是全局方法,即設(shè)置一個(gè)全局的環(huán)境變量MAVEN_OPTS。
linux下可修改.profile或者.bash_profile文件:export MAVEN_OPTS=-Xmx1024m
windows下可以添加環(huán)境變量MAVEN_OPTS
這樣對(duì)于所有的maven進(jìn)程都會(huì)啟用這個(gè)JVM參數(shù),所以是一個(gè)全局變量,具體可在bin\mvn.bat或者mvn.sh文件中找到如下內(nèi)容:(%MAVEN_OPTS%即為全局JVM參數(shù))
@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的需求,比如要單獨(dú)運(yùn)行一個(gè)JUnit Testcase,并且要fork出一個(gè)新的JVM來(lái)運(yùn)行,還要為這個(gè)JVM加上特定的參數(shù),那就需要更改項(xiàng)目的pom.xml文件了。具體方法是,修改項(xiàng)目的pom.xml在<build>-><plugins>,添加一個(gè)plugin,目的是配置surefire,使得每運(yùn)行一個(gè)testcase,都單獨(dú)fork出一個(gè)新的JVM來(lái)運(yùn)行,若還要添加JVM參數(shù),則可通過(guò)maven.test.jvmargs來(lái)進(jìn)行傳遞:
<plugin> |
然后在<properties>標(biāo)簽下加入,這樣maven能夠知道m(xù)aven.test.jvmargs這個(gè)參數(shù)存在,默認(rèn)值為空,通過(guò)運(yùn)行時(shí)命令行傳入:
<deploy.target/> <maven.test.jvmargs></maven.test.jvmargs> |
最后通過(guò)如下命令來(lái)運(yùn)行,其中-Dtest是需要運(yùn)行的testcase的名稱,-Dmaven.test.jvmargs指需要傳入的JVM參數(shù),maven將這個(gè)參數(shù)傳給新的fork出來(lái)的JVM運(yùn)行。
mvn -Dtest=TestXXX -Dmaven.test.jvmargs='-agentlib:xxxagent -Xmx128m' test
posted on 2013-09-04 10:32 順其自然EVO 閱讀(4144) 評(píng)論(0) 編輯 收藏