【问题标题】:JUnit spring resource overrideJUnit spring 资源覆盖
【发布时间】:2013-03-22 00:43:10
【问题描述】:

我的 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 project -> run as -> junit ...)每个测试用例都会失败。我发现 src/main/... 资源被加载而不是 src/test/...

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

【问题讨论】:

    标签: java spring maven junit4 m2e


    【解决方案1】:

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

    【讨论】:

    • 您可能是对的,但我没有设法弄清楚设置错误的地方,但是我能够以另一种方式解决此问题。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-07
      • 1970-01-01
      • 2015-10-30
      • 2012-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-02
      相关资源
      最近更新 更多