如何使用 JVM 参数在终端中通过 maven 运行 junit 测试
Posted
技术标签:
【中文标题】如何使用 JVM 参数在终端中通过 maven 运行 junit 测试【英文标题】:How to run junit tests by maven in terminal with JVM arguments 【发布时间】:2017-05-25 05:23:39 【问题描述】:正如here 中提到的,我们可以使用以下方法运行测试方法,
mvn -Dtest=TestCircle#xyz test
但我需要在运行测试用例之前设置一些 JVM 参数。就像我需要使用
-Djava.security.manager -Djava.security.policy=mypolicy.policy
我如何告诉 maven 在运行测试用例时考虑这些。
【问题讨论】:
Is there a way to pass jvm args via command line to maven?的可能重复 @Eomm 那么我们如何在运行测试用例时使用它来传递 VM 参数 按照建议,您可以使用一个名为 MAVEN_OPTS maven.apache.org/configure.html 的环境变量 maven.apache.org/surefire/maven-surefire-plugin/examples/…. surefire 插件创建自己的进程。您可以使用 -DargLine="" 将其他参数传递给该新进程:maven.apache.org/surefire/maven-surefire-plugin/… 【参考方案1】:两种可能的解决方案:
首先,如果你的 JVM 参数适用于所有测试,你可以添加如下信息作为 Surefire 的配置项:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
...
<configuration>
<argLine>-Djava.security.manager -Djava.security.policy=mypolicy.policy</argLine>
</configuration>
</plugin>
其次,如果要在逐个测试的基础上应用此类 JVM 参数,则可以在命令行中指定它们,如下所示:
mvn -Dtest=TestCircle#xyz test -DargLine="-Djava.security.manager -Djava.security.policy=mypolicy.policy"
【讨论】:
以上是关于如何使用 JVM 参数在终端中通过 maven 运行 junit 测试的主要内容,如果未能解决你的问题,请参考以下文章
Maven 全新安装在 intellij 中工作,但不在终端中