使Eclipse使用src / test / resources而不是src / main / resources

时间:2010-05-26 11:36:15

标签: java eclipse maven-2 resources properties

我正在Eclipse中编写一个小的Maven应用程序。我将一些属性文件和我的应用程序上下文存储在目录src / main / resources中。

我现在想让Eclipse在目录src / test / resources中使用属性。因此,当我在Eclipse中运行和调试程序时,应该使用这些测试属性。

你知道我怎么能做到这一点吗?

4 个答案:

答案 0 :(得分:9)

试试这个:

  1. 转到“运行 - >运行配置...”(如果是调试“运行 - >调试配置......”)
  2. 您使用的打开运行(调试)配置
  3. 打开“课程路径”标签
  4. 选择“用户条目”,然后点击右侧的“高级...”
  5. 在打开的窗口中选择“添加文件夹”,指向您的src / test / resources
  6. 此文件夹将显示在“用户条目”下,然后您应将其向上移动以使其成为类路径中的第一个

答案 1 :(得分:5)

是否在类路径上使用Maven Eclipse Pluginm2eclipsesrc/test/resources位于src/main/resources之前(更准确地说,是它们的输出目录)。换句话说,没有什么可做的,事情就像在命令行上一样。

答案 2 :(得分:3)

使用测试覆盖(例如testOverrides.xml):

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">

    <!--  this file need to be imported before other contexts to ensure the test properties take effect -->

    <context:property-placeholder location="classpath*:META-INF/spring/testproperties/*.properties"/>

</beans>

在测试中,请确保先导入:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath*:META-INF/spring/testOverrides.xml","classpath*:META-INF/spring/applicationContext.xml"})
public class SomeTest { ... }

现在将所有测试属性放在src/test/resources/META-INF/spring/testproperties/

您还必须确保main占位符配置器看不到testproperties,例如这是我的:

<context:property-placeholder location="classpath*:META-INF/spring/*.properties"/>

它不使用双*通配符,因此只会查看该目录。

我使用上述方法取得了巨大成功。

答案 3 :(得分:0)

在 eclipse 2021 中测试。转到运行方式配置(或调试)并转到类路径选项卡。现在您可以选中或取消选中,这取决于您是要使用 /src/main/resources 还是 /src/test/resources,如下所示:

enter image description here

最后,应用并运行您的程序