通过maven + grizzly + jersey测试框架运行测试时放置属性文件的位置?

时间:2013-06-06 00:31:57

标签: maven junit jersey grizzly

我的源代码(my.properties)文件夹中的src/main/resources文件在我尝试运行JerseyTest时被拾取并使用...而我想要的属性文件在要使用的测试文件夹(src/test/resources)。

ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
try {
    myProperties.load(classLoader.getResourceAsStream("my.properties"));
}

如何在Maven中配置?

我正在使用:

  1. maven-compiler-plugin版本2.1
  2. jersey-test-framework-grizzly2版本1.13

  3. 更新(根据已接受的答案决定):

    我注意到文字skip non existing resourceDirectory

    [INFO] --- maven-resources-plugin:2.4.3:testResources (default-testResources) @ xxx ---
    [WARNING] Using platform encoding (MacRoman actually) to copy filtered resources, i.e. build is platform dependent!
    [INFO] skip non existing resourceDirectory /xxx/xxx/xxx/xxx/src/test/resources
    

    事实证明我有错误拼写的资源,修好之后,所有内容都按照接受的答案中的说明进行操作。

    虽然我在浪费时间寻找解决方法,但我确实找到了一些基于配置文件配置属性文件的有趣链接:

    1. How can I change a .properties file in maven depending on my profile?
    2. http://maven.apache.org/guides/mini/guide-building-for-different-environments.html

1 个答案:

答案 0 :(得分:1)

src/test/java文件夹运行某些内容时,默认行为为:

  • 它会选择src/main/resources;
  • 中的文件
  • src/test/resources。{/ li>中存在同名文件外

所以基本上它会“覆盖”src/main/resources的内容,内容为src/test/resources

  • 如果您在两个文件夹中都有文件,则src/test/resources中的文件将占优势。
  • 如果您只在src/main/resources中获得了文件,则会使用该文件。
  • 如果您只在src/test/resources中获得了文件,则会使用该文件。