Java 如何在junit测试类中使用pom.xml属性
我在pom.xml中声明了一个属性Java 如何在junit测试类中使用pom.xml属性,java,spring,maven,junit,junit4,Java,Spring,Maven,Junit,Junit4,我在pom.xml中声明了一个属性 <PROPERTY_KEY>d:/../.../abc.properties</PROPERTY_KEY> 然后用 <plugin> <configuration> <replacements> <replacement> <token>APP_PROPERTY</token>
<PROPERTY_KEY>d:/../.../abc.properties</PROPERTY_KEY>
然后用
<plugin>
<configuration>
<replacements>
<replacement>
<token>APP_PROPERTY</token>
<value>${PROPERTY_KEY}</value>
....
</plugin>
并在我的dispatcher-servlet.xml和控制器类中使用了APP_属性。它工作正常,因为在本例中,控制通过web.xml实现,而这个web.xml有一个用于dispatcher-servlet.xml的条目。
但是当我想在我的JUnit测试类中使用相同的APP_属性时,它并没有得到解决。
我必须创建一个新的dispatcher-servlet-test.xml文件,并将其放在/src/main/resources文件夹下,因为我的实际dispatcher-servlet.xml无法从JUnit测试类工作。现在,我的JUnit测试类能够选择dispatcher-servlet-test.xml。但是,它无法解析我在pom.xml中定义的属性APP_属性。
我正在测试类中使用SpringJUnit4ClassRunner.class。
如何解决这些属性?测试资源需要位于src/test/Resources下,您应该将dispatcher-servlet-test.xml移到那里。一旦移动,它很可能不会作为资源进行过滤,您想要的节如下所示:
<build>
<resources>
<resource>
<directory>src/test/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/dispatcher-servlet-test.xml</include>
</includes>
</resource>
您的POM中可能已经有一个类似的节,或者如果您正在处理一个更大的项目,那么父POM.xml可能会有一个节声明:
<filtering>true</filtering>
嗨,不知什么原因,它不适合我。我试过你的建议。我的dispatcher-servlet-test.xml包含以下行:,我的pom.xml有一个您建议的条目。