3

我已经尝试了几乎所有我能想到的配置(并查看了 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”目标,那么这些目标就不会运行,那么我就不会收到错误,并且测试似乎运行良好。我不确定这是否有帮助。

4

1 回答 1

1

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

于 2012-08-21T17:33:08.220 回答