如何使用 JVM 参数在终端中通过 Maven 运行 junit 测试

pri*_*ime 8 java junit maven

正如这里提到的,我们可以使用以下方法运行测试方法,

mvn -Dtest=TestCircle#xyz test
Run Code Online (Sandbox Code Playgroud)

但是我需要在运行测试用例之前设置一些 JVM 参数。就像我需要使用

-Djava.security.manager -Djava.security.policy=mypolicy.policy

我如何告诉 Maven 在运行测试用例时考虑这些。

Fre*_*ing 6

两种可能的解决方案:

首先,如果您的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>
Run Code Online (Sandbox Code Playgroud)

其次,如果要在逐个测试的基础上应用此类 JVM 参数,则可以在命令行上指定它们,如下所示:

mvn -Dtest=TestCircle#xyz test -DargLine="-Djava.security.manager -Djava.security.policy=mypolicy.policy"
Run Code Online (Sandbox Code Playgroud)