我有一个 Spring + JPA + Hibernate 应用程序,我试图通过子类化代码>AbstractJUnit4SpringContextTests 来测试它。该类允许使用@ContextConfiguration
注释指定 Spring 上下文文件。<jdbc:embedded-database>
在此文件中,通过元素使用 SQL 脚本创建和初始化数据库(模式 + 数据) 。
现在我有两个类加载两个不同的弹簧上下文文件,但它们都包含这个元素。如果我单独运行每个测试类,所有测试方法都可以正常工作。但是,如果我从 ant 脚本运行它们,运行的第二个测试会报错,因为数据库已经初始化!这很奇怪,因为我fork="yes" forkmode="perTest"
在我的 Ant JUnit 目标中。我不确定为什么会这样。有任何想法吗?
编辑:这是我的 ant 脚本的片段:
<junit printsummary="withOutAndErr" haltonfailure="yes" fork="yes" forkmode="perTest" maxmemory="512m">
<classpath refid="mvn.classpath"/>
<classpath location="${classes-core}"/>
<classpath location="${classes-pentaho}"/>
<classpath location="${classes-plugins}"/>
<classpath location="${junit.classes}"/>
<classpath location="${junit.resources}"/>
<sysproperty key="ant.home" value="${ant.home}"/>
<formatter type="xml"/>
<batchtest fork="yes" todir="${junit.out.dir.xml}">
<fileset dir="${junit.classes}" includes="**/*TestSuite.class"/>
</batchtest>
</junit>
谢谢
乔瓦尼