.我有一个项目,在 src/main/webapp/WEB-INF
中有一个 spring-config.xml 文件,在 src/test/resources< 中有一个 applicationContext.xml 文件
。我还有一个用于 src/test/java 中的单元测试的抽象测试基类,如下所示:
@ContextConfiguration(locations = {"classpath:/applicationContext.xml"})
public abstract class AbstractTestBase extends AbstractTransactionalJUnit4SpringContextTests {
//Common code and fields
}
我所有的单元测试都扩展了这个AbstractTestBase,它指向src/test/resources
或should中的上下文。运行我的单元测试时会出现问题,它会拉入 spring-config.xml 文件。
我的团队正在开发的其他项目具有相同的文件结构、相同的应用程序上下文设置,并按预期运行,但即使我将项目中的每个文件并排放置,我也看不到它们的文件在哪里运行,而这个不运行。
我是 Spring 新手,所以我不知道我应该寻找什么。
是否存在 Spring 或 Maven 在所有文件都存在的情况下不会获取我正在传递的应用程序上下文的情况?有什么我可能遗漏的吗?
编辑:已更正以反射(reflect)一个文件是 spring-config 文件。
最佳答案
“classpath:/applicationContext.xml”
应该在 src/test/resources
下查找。
但应该注意的是,使用该语法将加载它找到的第一个语法,然后如“@chrylis”所述停止。
我曾经遇到过类似的问题。
您一定一直在使用 IDE。项目目录中的 target/test-classes/(在 Eclipse IDE 中)
中必须存在 applicationContext.xml
文件,该文件是 下 xml 文件的副本>src/main/webapp/WEB-INF
或类似的 xml 文件。
关于java - Spring Maven单元测试应用程序上下文加载错误的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18639379/