简体   繁体   中英

Ant and Junit all tests fail

I need to use ant to test my project develop in Java. I cannot make ant works properly. I haven't trully understood how to set the path for ant which files are needed to test correctly the project.

Which type of file is expecting? source or binary?

I am using this ant file to run the test :

<project name="acmetelecom" default="compile">

<property name="src" location="src/acme/com/acmetelecom" />
<property name="src" location="src/acme/com/acmetelecom" />
<property name="fit" location="fit" />
<property name="bin" location="bin" />
<property name="lib" location="lib" />
<property name="report" location="report" />
<property name="junit.report" location="report/junit" />
<property name="fit.report" location="report/fit" />
<path id="lib.classpath">
    <fileset dir="${lib}">
        <include name="**/*.jar" />
    <include name="*" />
    </fileset>
</path>
<path id="test.classpath">
    <path refid="lib.classpath" />
<pathelement location="lib/junit/junit-4.4.jar" />
    <pathelement location="lib/junit/junit-4.4-src.jar" />
    <pathelement location="${bin}" />
</path>

<target name="compile">
    <mkdir dir="${bin}" />
    <javac srcdir="${src}" destdir="${bin}">
        <classpath refid="lib.classpath" />
    </javac>
</target>


<target name="junit" depends="compile">
    <mkdir dir="${junit.report}" />
    <junit printsummary="yes" fork="yes" haltonfailure="no">
        <classpath refid="test.classpath" />
        <formatter type="plain" />
        <batchtest fork="yes" todir="${junit.report}">
            <fileset dir="bin/com/acmetelecom">
                <include name="**/*Test.class" />
            </fileset>
        </batchtest>
    </junit>
</target>
<target name="fit" depends="compile">
    <mkdir dir="${fit.report}" />
    <java classname="fitlibrary.runner.FolderRunner" fork="yes"
            failonerror="yes">
        <classpath refid="test.classpath" />
        <arg value="${fit}" />
        <arg value="${fit.report}" />
    </java>
    <echo>Please see the FIT report page for more details</echo>
</target>
<target name="clean">
    <delete dir="${bin}" />
    <delete dir="${report}" />
</target>
</project>

I cannot see what I am doing wrong! The tests are in the same directory as the source code.

The root node of an Ant script is the project tag. An example I suggest starting simple... like get your Java source to compile, then add junit, etc.

You are writing .class files to ${bin}. Try to give that as argument in batchtest's fileset. There is no need to give packagedirectory paths anyway. * / .class is going to check all directories.

  <batchtest fork="yes" todir="${junit.report}">
        <fileset dir="${bin}">
            <include name="**/*Test.class" />
        </fileset>
    </batchtest>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM