我有一个基本结构为 src/(main|test)/(java|resources)/... 的 java 项目我使用的是 servlet 2.5 和 xml 配置的 spring。我的 BaseDaoTest 类如下所示:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={
"classpath:spring/datasource-context.xml",
...,
})
@TransactionConfiguration
@Transactional
public abstract class BaseDaoTest extends AbstractTransactionalJUnit4SpringContextTests { }
所以在我的 src/main/resources/spring/ 下是文件 datasource-context.xml 。为了进行测试,我使用的是内存数据库,所以我也进入了 src/test/resources/spring datasource-context.xml 。
大约 3/4 年一切正常。从 src/test 加载的测试上下文,从 src/main 加载。从昨天开始(我不知道我改变了什么,或者改变了什么),每当我在 Eclipse 中运行所有测试(rclick 项目 -> 运行为 -> junit ...)时,每个测试用例都会失败。我发现 src/main/... 资源被加载而不是 src/test/...
有谁知道发生了什么?我可以通过重命名测试特定的资源来让它工作,但我很好奇为什么加载器(?)改变了优先级来加载主要而不是测试。如果我运行单个测试类,它工作得很好。