【发布时间】:2011-05-20 08:43:04
【问题描述】:
我有 Suite.java 文件:
public class EshopServiceTestSuite extends TestSuite {
public static Test suite() {
TestSuite suite = new TestSuite();
suite.addTestSuite(ImpactActionTypeTest.class);
suite.addTestSuite(ProductServiceTest.class);
return suite;
}
public static void main(String[] args) {
TestRunner.run(EshopServiceTestSuite .class);
}
}
ImpactActionTypeTest.java 文件扩展了 TestCase 它工作正常。但是 ProductServiceTest.java
扩展 ESWTestCase,实习生扩展了 TestCase,这会导致 junit atrget 失败。
<error type="java.lang.reflect.InvocationTargetException">java.lang.reflect.InvocationTargetException
Caused by: java.lang.ExceptionInInitializerError
at org.apache.log4j.Logger.getLogger(Logger.java:94)
at com.bgc.ecm.core.test.ElNinoAbstractTestCase.<clinit>(ElNinoAbstractTestCase.java:62)
at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
at com.bgc.EshopServiceTestSuite.suite(EshopServiceTestSuite.java:41)
Caused by: sun.misc.InvalidJarIndexException: Invalid index
at sun.misc.URLClassPath$JarLoader.getResource(URLClassPath.java:769)
.....
</error>
<system-out><![CDATA[]]></system-out>
<system-err><![CDATA[log4j:WARN Caught Exception while in Loader.getResource. This may be innocuous.
sun.misc.InvalidJarIndexException: Invalid index
EshopServiceTestSuite.java:41 有代码 suite.addTestSuite(ProductServiceTest.class); Log4j 被称为:
- C:\build_libs\ESW\junit-3.8.1.jar
- C:\build_libs\ESW\log4j-1.2.15.jar
- C:\build_libs\ESW\log4j-1.2.8.jar
- C:\build_libs\ESW\mailapi.jar
为什么会出现这个异常?
【问题讨论】:
-
在此处添加代码sn-p,jar版本
-
听起来您的 Jar 已损坏。你能用
jar xvf提取它的内容吗? -
所有 jar 文件都包含正确的类文件。