无法在Hudson Maven中为JUnit测试加载ApplicationContext,但在本地没有问题

时间:2012-08-17 15:29:08

标签: spring maven junit hudson

我已经尝试了几乎所有我能想到的配置(并回顾了StackOverflow上的一些答案),但是我们所有的测试都显示了在通过Hudson运行时“无法加载ApplicationContext”错误。有趣的是,一些测试似乎运行并通过,而一些测试运行和失败(如预期的那样),但无论我总是得到所有测试的错误列表。这是基本配置:

@ContextConfiguration(locations = "classpath:/MyTest-context.xml")
@RunWith(SpringJUnit4ClassRunner.class)
public class MyTest {

    @Autowired
    private ApplicationContext applicationContext;

    public MyTest() {}

    @Test
    public void doSomething() {
        // Implementation...
    }
}

更新

似乎有一组重复的测试正在运行,一组用于Emma覆盖报告,另一组用于正常测试。当Emma覆盖的测试运行时,他们正在显示错误。如果我关闭“emma:emma package”目标,那么那些不运行,那么我没有得到错误,测试似乎运行正常。我不确定这是否有帮助。

1 个答案:

答案 0 :(得分:1)

答案最终接近于gontard指向的内容,这是一个被Emma的类加载器工作方式隐藏的问题。在我的本地JUnit测试之间,我们的DEV环境中运行的是什么,以及使用Emma在Hudson中运行的是什么,所有这些测试都有不同的方式,类加载器命令加载库和类。我最终检查了测试结果的堆栈跟踪,结果发现我的本地,通过POM加载了一个新版本的库,但在Hudson Emma首先加载了一个旧版本的库。我必须找到并删除旧版本,现在一切正常。