正如 duffymo 暗示的那样,Spring TestContext Framework (TCF) 假定字符串位置默认位于类路径中。有关详细信息,请参阅 JavaDoc上下文配置 http://static.springsource.org/spring/docs/3.1.x/javadoc-api/org/springframework/test/context/ContextConfiguration.html.
但请注意,您还可以使用 Spring 的资源抽象(即使用“file:”前缀)通过绝对路径或相对路径指定文件系统中的资源。您可以在 JavaDoc 中找到相关详细信息修改位置() http://static.springsource.org/spring/docs/3.1.x/javadoc-api/org/springframework/test/context/support/AbstractContextLoader.html#modifyLocations%28java.lang.Class,%20java.lang.String...%29Spring中的方法AbstractContextLoader
.
例如,如果您的 XML 配置文件位于"src/main/webapp/WEB-INF/spring-config.xml"
在项目文件夹中,您可以将位置指定为相对文件系统路径,如下所示:
@ContextConfiguration("file:src/main/webapp/WEB-INF/spring-config.xml")
作为替代方案,您可以将 Spring 配置文件存储在类路径中(例如,src/main/resources
),然后通过 Spring MVC 配置中的类路径引用它们——例如:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:/spring-config.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
使用这种方法,您的测试配置将如下所示(请注意前导斜杠表示资源位于类路径的根目录中):
@ContextConfiguration("/spring-config.xml")
您可能还会发现使用 XML 资源进行上下文配置 http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/htmlsingle/spring-framework-reference.html#testcontext-ctx-management-xml参考手册中的部分很有用。
Regards,
Sam
(Spring TestContext 框架的作者)