对我来说似乎很奇怪。 JUnit测试从eclipse运行良好。但是当我从Ant命令行运行时,它显示错误。看起来它不是加载/应用程序上下文。这是测试类的基类。
@ContextConfiguration(locations = { "classpath*:applicationContext.xml"})
public abstract class TransactionalTestCase extends StrutsSpringTransactionalTests {
@Before
public void onSetUp() throws Exception {
super.setUp();
}
@Override
protected void setupBeforeInitDispatcher() throws Exception {
servletContext.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, appContext);
}
当我尝试在此方法中打印appContext
时,会打印出来
org.springframework.context.support.GenericApplicationContext@9320aa71:启动日期xxxxxxx
但是它从ant build命令行打印出来。
我比较了eclipse和ant的类路径。两者都是一样的。包括相同的文件和文件夹。
当我从ant build运行时, @ContextConfiguration
没有生效?
还有什么可能是错的?
StrutsSrpingTransactionalTests类
@RunWith(SpringJUnit4ClassRunner.class)
@TestExecutionListeners({
TransactionalTestExecutionListener.class,
DependencyInjectionTestExecutionListener.class,
DirtiesContextTestExecutionListener.class
})
@Transactional
public abstract class StrutsSpringTransactionalTests extends StrutsTestCase implements ApplicationContextAware {
protected ApplicationContext appContext;
@Override
public void setApplicationContext(ApplicationContext appContext) throws BeansException {
this.appContext = appContext;
}
}
答案 0 :(得分:0)
想通了,问题在于JUnit版本。 Eclipse使用Junit4,而ant默认使用Junit3。