JUnit spring资源覆盖

时间:2013-03-22 00:43:10

标签: java spring maven junit4 m2e

我有java项目的基本结构src /(main | test)/(java | resources)/ ...我正在使用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 /...

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

我的同事告诉我做一些史诗般的清洁。 Eclipse菜单栏:Project - >清洁; mvn eclipse:干净; F5; maven force update;生成源,什么不是;等等......现在一切正常。我认为我以前从未使用过的最重要的部分是mvn eclipse:clean。