0

我有一个基本结构为 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/...

有谁知道发生了什么?我可以通过重命名测试特定的资源来让它工作,但我很好奇为什么加载器(?)改变了优先级来加载主要而不是测试。如果我运行单个测试类,它工作得很好。

4

2 回答 2

1

我怀疑您的运行配置设置可能已更改。分析包上的运行配置设置,右键单击包并选择属性。然后选择左侧运行/调试设置中列出的运行配置。你要密切关注类路径。可能类路径的顺序已更改,或者目录已从类路径中添加或删除。

于 2013-03-22T00:57:39.373 回答
0

我的同事告诉我做一些史诗般的清洁。Eclipse 菜单栏:Project -> Clean;mvn 日食:清洁;F5; Maven 强制更新;生成源等等;等等......现在一切正常。我认为我以前从未使用过的最重要的部分是 mvn eclipse:clean。

于 2013-03-22T19:36:53.570 回答