Hi, everyone!
I have a project which is builded on struts2.2.1, Hibernate3.6.3 and
Spring3.0.5, and I'm running unit tests with Ant. I wrote three
classes:

1. TestLoginAction (unit test class)
public class TestLoginAction extends BaseActionTransactionalTest { ... }

2. BaseActionTransactionalTest (common configuration)
@ContextConfiguration(
        locations = {
                "classpath:applicationContext-dao.xml",
                "classpath:test-applicationContext-resources.xml",
                "classpath:applicationContext-service.xml",
                "classpath:applicationContext-struts.xml"
        }
)
public abstract class BaseActionTransactionalTest extends
                StrutsSpringTransactionalTests { ... }

3. StrutsSpringTransactionalTests(transaction control)
@RunWith(SpringJUnit4ClassRunner.class)
@TestExecutionListeners({ TransactionalTestExecutionListener.class,
                DependencyInjectionTestExecutionListener.class,
                DirtiesContextTestExecutionListener.class })
@Transactional
public abstract class StrutsSpringTransactionalTests extends
                StrutsSpringTestCase implements ApplicationContextAware { ... }

It works fine with Eclipse, but when I run TestLoginAction in
Ant-Junit, it fails. The spring configure
files(applicationContext-dao.xml ...) are not loaded. It seem that the
"@ContextConfiguration" annotation is ignored. the build file is like:

         <target name="test" depends="compile.test">
                <mkdir dir="${report.dir}" />
                <property name="tests" value="Test*" />
                <junit printsummary="yes" haltonerror="yes" haltonfailure="yes">
                        <formatter type="plain" usefile="false" />
                        <formatter type="xml" />
                        <batchtest todir="${report.dir}">
                                <fileset dir="${src.test.dir}">
                                        <include name="**/${tests}.java" />
                                </fileset>
                        </batchtest>
                        <classpath refid="lib.test.classpath" />
                        <classpath location="${build.home.classes}"/>
                </junit>
        </target>

        <target name="testrunner" depends="compile.test">
                <java classname="org.junit.runner.JUnitCore" >
                        <classpath refid="lib.test.classpath" ></classpath>
                        <classpath location="${build.home.classes}"/>
                        <arg value="me.yibo.web.action.TestLoginAction"/>
                </java>
        </target>

if I run target “testrunner”, it works fine.

Best Regard!

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@ant.apache.org
For additional commands, e-mail: user-h...@ant.apache.org

Reply via email to