我的maven.properties文件中有以下行。
MY_VARIABLE = www.google.com
我的pom文件代码如下所示
<build>
<pluginManagement>
<testResources>
<testResource>
<directory>src/test/resources</directory>
<filtering>true</filtering>
</testResource>
</testResources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.16</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>read-project-properties</goal>
</goals>
<configuration>
<includes>
<include>**/*Test*.java</include>
<include>**/*Tests*.java</include>
<include>**/Test*.java</include>
</includes>
<files>
<file>src/test/resources/maven.properties</file>
</files>
<systemPropertyVariables>
<message>${MY_VARIABLE}</message>
</systemPropertyVariables>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.16</version>
</plugin>
</plugins>
</pluginManagement>
</build>
最后我有一段代码来检索消息变量中的值。
public static String getMsg()
{
final String msg = System.getProperty("message");
if (StringUtils.isEmpty(msg) || url.startsWith("${"))
{
return "Empty message";
}
return msg;
}
因此,当我调用getMsg()方法时,它总是将msg的值作为空消息返回。
是pom.xml声明中的某个错误还是正在使用的getMsg()函数中的某个问题。
如果有人可以对此有所了解,那就太好了。
提前致谢....
答案 0 :(得分:1)
如果我没有弄错,您需要使用以下语法
<properties>
<message>${MY_VARIABLE}</message>
</properties>
systemPropertyVariables用于Surefire插入,用于单元测试
答案 1 :(得分:0)
我前段时间遇到过这个问题。我不知道它是否是故障保护/ maven错误或限制。我发现的解决方案是将变量设置为VM参数。以下是它目前对我有用的方式:
按如下方式更新你的邮件:
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.17</version>
<configuration>
<argLine>-DMY_VARIABLE=${MY_VARIABLE}</argLine>
</configuration>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
然后,您可以调用maven来运行集成测试,如下所示: mvn integration-test -DMY_VARIABLE = www.google.com
答案 2 :(得分:0)
感谢各位帮忙..
我找到了完成这项工作的方法。
在我开始测试之前,在我的java文件中我正在使用
System.setProperty("message" , "welcome message");
这最终会打印出值而不是null。
干杯