我一直在努力让Ant执行一些用JUnit编写的测试,但是一直没有成功。如果您有任何建议,将不胜感激。我对Ant和Java都很陌生,请耐心指导。
简单来说,我正在尝试让Ant执行一个非常简单的测试,考虑到Ant -debug的输出,类路径看起来没问题。对于一个明确在类路径中提到其类文件的测试,我得到了一个空测试错误。此外,我还遇到了ZipException,我不知道这是什么原因。
以下是我正在尝试运行的测试用例:
简单来说,我正在尝试让Ant执行一个非常简单的测试,考虑到Ant -debug的输出,类路径看起来没问题。对于一个明确在类路径中提到其类文件的测试,我得到了一个空测试错误。此外,我还遇到了ZipException,我不知道这是什么原因。
以下是我正在尝试运行的测试用例:
package testmanagment;
import junit.framework.*;
public abstract class EasyTest extends TestCase
{
public EasyTest(String name)
{
super(name);
}
protected void setUp()
{}
protected void testSeeMee() throws Exception
{
assertTrue(true);
}
protected void testSeeMeetoo() throws Exception
{
assertTrue(true);
}
}
这个软件包中有几个测试,这个测试只是为了查看为什么所有内容都失败了。它会因ZipException而失败。
这是我的make文件的一小部分:
<property name="src" value="src/"/>
<property name="build" value="build/"/>
<property name="test" value="${build}test/"/>
<property name="testreportsdir" value="${test}reports/"/>
<property name="classdir" value="${build}classes/"/>
<property name="lib" value="lib/"/>
<path id="files-classpath">
<fileset dir="lib/" >
<include name="*.jar"/>
</fileset>
</path>
<path id="tests-classpath">
<path refid="files-classpath"/>
<pathelement location="${classdir}/"/>
</path>
<path id="tests-runpath">
<path refid="tests-classpath"/>
<fileset dir="${test}/">
<include name="*.class"/>
<include name="**/*.class"/>
<include name="testmanagment/*.class"/>
<include name="*.*"/>
<include name="**/*.*"/>
<include name="testmanagment/*.*"/>
</fileset>
</path>
blah blah blah
<target name="test" depends="compile_tests">
<junit haltonfailure="true" printsummary="false">
<classpath refid="tests-runpath"/>
<formatter type="brief" usefile="false"/>
<test name="testmanagment.EasyTest"/>
<test name="testmanagment.TestUser"/>
<test name="testmanagment.TestTest"/>
</junit>
</target>
Ant编译一切正常,并且似乎将所有内容放在了正确的位置。但是它似乎找不到我的测试...这是当我使用-debug选项运行它时,Ant输出的一小段内容。
[junit] Using CLASSPATH /host/Users/Sheena/Desktop/School/Software dev/lab_project/lib/junit-4.8.1.jar:/host/Users/Sheena/Desktop/School/Software dev/lab_project/lib/sqlitejdbc-v056.jar:/host/Users/Sheena/Desktop/School/Software dev/lab_project/build/classes:/host/Users/Sheena/Desktop/School/Software dev/lab_project/build/test/testmanagment/EasyTest.class:/host/Users/Sheena/Desktop/School/Software dev/lab_project/build/test/testmanagment/TestTest.class:/host/Users/Sheena/Desktop/School/Software dev/lab_project/build/test/testmanagment/TestUser.class:/usr/share/ant/lib/junit.jar:/usr/share/java/ant-launcher-1.7.1.jar:/usr/share/ant/lib/ant.jar:/usr/share/ant/lib/ant-junit.jar
Class org.apache.tools.ant.taskdefs.optional.junit.BriefJUnitResultFormatter loaded from parent loader (parentFirst)
Finding class testmanagment.EasyTest
Ignoring Exception java.util.zip.ZipException: error in opening zip file reading resource testmanagment/EasyTest.class from /host/Users/Sheena/Desktop/School/Software dev/lab_project/build/test/testmanagment/EasyTest.class
Ignoring Exception java.util.zip.ZipException: error in opening zip file reading resource testmanagment/EasyTest.class from /host/Users/Sheena/Desktop/School/Software dev/lab_project/build/test/testmanagment/TestTest.class
Ignoring Exception java.util.zip.ZipException: error in opening zip file reading resource testmanagment/EasyTest.class from /host/Users/Sheena/Desktop/School/Software dev/lab_project/build/test/testmanagment/TestUser.class
[junit] Testsuite: testmanagment.EasyTest
[junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
[junit]
[junit] Null Test: Caused an ERROR
抱歉,输出结果看起来不太美观,但目前这是我所能使用的全部。
看起来测试用例在类路径中,所以我不知道发生了什么...也许与ZipException有关,但我不确定...