Spring 未能在Hudson Maven中加载JUnit测试的ApplicationContext,但本地没有问题
我已经尝试了我能想到的所有配置(并回顾了StackOverflow的一些答案),但我们所有的测试都显示在Hudson中运行时出现“加载ApplicationContext失败”错误。有趣的是,有些测试似乎运行并通过,而有些测试运行并失败(如预期),但不管怎样,我总是得到所有测试的错误列表。以下是基本配置:Spring 未能在Hudson Maven中加载JUnit测试的ApplicationContext,但本地没有问题,spring,maven,junit,hudson,Spring,Maven,Junit,Hudson,我已经尝试了我能想到的所有配置(并回顾了StackOverflow的一些答案),但我们所有的测试都显示在Hudson中运行时出现“加载ApplicationContext失败”错误。有趣的是,有些测试似乎运行并通过,而有些测试运行并失败(如预期),但不管怎样,我总是得到所有测试的错误列表。以下是基本配置: @ContextConfiguration(locations = "classpath:/MyTest-context.xml") @RunWith(SpringJUnit4ClassRun
@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”目标,使它们不运行,那么我就不会得到错误,测试也会正常运行。我不确定这是否有帮助 答案与gontard所指的非常接近,而Emma的类加载器的工作方式隐藏了这个问题。在我的本地JUnit测试、在我们的开发环境中运行的测试和在Hudson with Emma中运行的测试之间,所有这些测试都有一种不同的方式,类加载器命令加载库和类。我最后查看了测试结果上的堆栈跟踪,结果在我的本地计算机上,通过POM加载了一个新版本的库,但在Hudson,Emma首先加载了一个旧版本的库。我必须找到并删除旧版本,现在一切正常。Hmm。。您的问题听起来好像一开始并没有找到应用程序上下文,但不知怎么找到了。我没有遇到这个问题,虽然我们似乎有非常相似的设置,并使用Hudson for CI(还没有时间移动到Jenkins)。如果您使用“maven test”运行测试,测试通过?@gontard Correct,我没有得到错误。您看到该部分了吗?可能是spring和emma clasloader之间不兼容。你能提供你的maven emma插件配置吗?