Spring classpath路径单元测试eclipse

时间:2012-01-11 11:45:38

标签: eclipse spring classpath

我一直在读:

http://static.springsource.org/spring/docs/2.5.x/reference/resources.html

但是我很难理解如何指定类路径资源路径。例如,我在eclipse spring项目中有如下项目结构:

project1
  src
    main
       resources
               maincontext.xml
    test      
       resources
               testcontext.xml
       java
           uk
             co
               project1
                      Unittest.java

然后在我的测试文件中我有:

@ContextConfiguration(locations={"classpath:testcontext.xml", "classpath:<path of maincontext>"})

公共类BlacklistTest扩展AbstractTransactionalJUnit4SpringContextTests {

当我右键单击我的测试文件并选择debug作为JUnit测试时,可以找到testcontext.xml。这让我觉得我的类路径的根是“project1 / src / test / resources”。我不明白这是在日食中确定的地方..?此外,一旦我完成了这个,如果它位于我的root之上,如何包含maincontext.xml?最后,如果我包含另一个项目'project 2'并想从中添加一个spring上下文文件,我该如何在我的unittest.java文件中引用它。

1 个答案:

答案 0 :(得分:1)

类路径的“根”字面意思是""(一个空字符串,在文件系统上就像"/"一样)。

看起来你正在使用Maven。这意味着在构建过程中会合并诸如/src/main/java/src/main/resources之类的东西 - 换句话说,Eclipse将每个用作源目录。 test层次结构紧随其后。

想要包含一些“在你的根”之上的东西 - IMO坚持使用类路径资源。如果不这样做,则必须明确命名,不要使用"classpath:"前缀,因为它不在类路径中,并提供完全限定的路径(或者完全符合您的环境要求,例如,web-app文件名可能基于Web上下文根,如"/WEB-INF/foo-context.xml")。