无法从Ant运行Groovy测试用例

时间:2014-07-19 02:01:51

标签: ant groovy junit

我的Ant目标如下所示:

<target name="junit" depends="compile">
    <junit haltonfailure="true" printsummary="true">
        <classpath>
            <fileset dir="${idea.dir}/lib" includes="junit.jar" />
            <fileset dir="${build.dir}" includes="**" />
        </classpath>
        <formatter type="plain" usefile="true" />
        <batchtest fork="false" todir="${out.dir}">
            <fileset dir="${build.dir}" includes="test_*/*Test.class" />
        </batchtest>
    </junit>
</target>

项目中的所有已编译类都在${build.dir}中,以及所有已编译的测试用例。后者位于${build.dir}/test_*个子文件夹中。

有一个测试类${build.dir}/test_ecs/EntityManagerTest.class,显然可以在batchtest中找到。但是,Ant在junit报告中给出了这个输出:

test_ecs.EntityManagerTest
java.lang.ClassNotFoundException: test_ecs.EntityManagerTest
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:270)
    at com.intellij.rt.ant.execution.AntMain2.main(AntMain2.java:30)

现在,我不明白的是:为什么找到了测试用例类文件,但是错误确实说明找不到该类?

2 个答案:

答案 0 :(得分:0)

尝试像这样修改<classpath>..部分:

<junit ..>
        <classpath>
            <pathelement location="${idea.dir}/lib/junit.jar"/>
            <pathelement path="${build.dir}"/>
        </classpath>

看看它是否运行......

答案 1 :(得分:0)

我怀疑你的问题是类路径声明:

<classpath>
    <fileset dir="${idea.dir}/lib" includes="junit.jar" />
    <fileset dir="${build.dir}" includes="**" />
</classpath>

您的* .class文件是否位于构建目录中?或者构建目录的子目录?

举例来说,这是我的标准junit任务:

<junit printsummary="yes" haltonfailure="yes">
    <classpath>
        <path refid="test.path"/>
        <pathelement path="${build.dir}/classes"/>
        <pathelement path="${build.dir}/test-classes"/>
    </classpath>
    <formatter type="xml"/>
    <batchtest fork="yes" todir="${build.dir}/test-reports">
        <fileset dir="${test.src.dir}">
            <include name="**/*Test*.java"/>
            <exclude name="**/AllTests.java"/>
        </fileset>
    </batchtest>
</junit>

请注意类路径声明。它包括第三方依赖项jar的路径,我编译类的目录以及我编译测试类的目录。