我正在尝试从我在maven POM文件中设置的系统属性中获取输入参数。
我的POM看起来像
<systemProperties>
<property>
<name>number 1</name>
<value>${number 1}</value>
</property>
<property>
<name>number 2</name>
<value>${number 2}</value>
</property>
</systemProperties>
当我进行测试时,这将是我的maven目标
clean install -Dtest=RunTest test -Dnumber1=2 -Dnumber1
现在我如何编写我的java测试代码以从系统属性中获取number1和number2?
public void addNumbers () {
System.out.println(number1+number2);
}
**我是否需要在项目中使用surefire插件才能使其正常工作?
答案 0 :(得分:2)
如果要将系统属性传递给由surefire插件调用的测试用例,则需要配置surefire插件以传递属性,如
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
<configuration>
<systemPropertyVariables>
<number1>1</number1>
<number2>2</number2>
</systemPropertyVariables>
</configuration>
</plugin>
</plugins>
</build>
[...]
</project>
答案 1 :(得分:0)
在pom.xml中我们可以像这样配置: -
<project>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.9</version>
<configuration>
<argLine>-DaddProp=true</argLine>
<argLine>-DmultProp=false</argLine>
</configuration>
</plugin>
</plugins>
</build>
在获取系统属性的java代码中: -
System.getProperty("addProp");
System.getProperty("multProp");