2

我有一个 WAR 项目,我正在尝试将 spring 配置文件存储在 /WebContent/WEB-INF/Spring/ 文件夹中(根据我的雇主的要求),但是当我这样做时,我还没有找到能够参考的方法我的junit测试中的那些文件。今天有人告诉我,我可以修改我的 MANIFEST.MF 文件,以便包含 spring 配置文件,但我无法成功地从清单文件中引用这些文件。

我的第一个问题是是否可以从我的 junits 中引用 /WebContent/WEB-INF/Spring/ 文件夹中的文件?如果可能,清单文件如何知道在哪里查找文件?链接是相对的吗?

我的 WAR 的文件夹结构如下(结构由我工作的公司定义):

战争计划
 - 源\
 - 网页内容\
 - - 网络信息\
 - - - 春天\
 - - - - 应用配置.xml
 - - - - 安全.xml
 - - 元信息\
 - - - 清单.MF

感谢您提供的任何指导。

杰里米

4

2 回答 2

1

如果您使用的是 Spring 2.5 或更高版本以及Spring 的 TestContext 框架,那么您可以简单地使用注释测试类@ContextConfiguration(locations = {path/to/file})

如果您自己加载 ApplicationContext,那么只需确保它/WebContent/WEB-INF/Spring/位于类路径中并使用classpath:contextname.xml.

于 2010-09-30T21:13:24.677 回答
1

在任何情况下,无论 Spring 的版本如何,您都可以使用FileSystemXmlApplicationContext该类加载应用程序上下文进行测试,并将字符串"file:WebContent/WEB-INF/Spring/App-config.xml"作为“configLocation”参数传入,这将从 XML 配置中为您加载应用程序上下文。

考虑到这一点,Matt 确实有一个好主意,如果您能够使用基于注解的测试,您应该将@ContextConfiguration注解与注解结合使用,@RunWith(SpringJUnit4TestRunner.class)让 Spring 的测试框架自动为您加载上下文,在这种情况下,您可以还可以在 @ContextConfiguration 注释中使用上面的字符串。您不需要在类路径中包含应用程序上下文,也不需要将 /WebContent/WEB-INF/Spring/ 添加到类路径中以进行测试。

于 2010-11-18T23:43:53.420 回答