运行junit测试时的ZipException

我一直试图让ant执行一些用junit编写的测试。 任何建议将不胜感激。 我对ant和Java都很陌生,所以请耐心等待。

作为一个简短的总结,我正在做的是尝试让ant执行一个非常简单的测试,考虑到ant -debug的输出,classpath看起来很好。 我在类路径中明确提到类文件的测试时遇到空测试错误。 此外,我得到一个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文件的一小部分:

                            blah blah blah          

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有关但我不知道……

您将EasyTest.class作为JAR文件添加到类路径中。 这不起作用。 类文件不是JAR存档,因此类加载器在尝试从中加载类时会引发错误。

我假设您正在运行jUnit 3.您可能想尝试创建一个非抽象类的TestCase类。 另外,有一个默认的构造函数,否则jUnit将不知道如何创建测试类。

在你的情况下它应该是:

 package testmanagment; import junit.framework.*; public class EasyTest extends TestCase { public EasyTest() { super("Easy Test"); } public void setUp() { } public void testSeeMee() throws Exception { assertTrue(true); } public void testSeeMeetoo() throws Exception { assertTrue(true); } }