муравья цель для джунит - PullRequest
0 голосов
/ 20 мая 2011

У меня есть файл 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.&lt;clinit&gt;(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

почему происходит это исключение?

Ответы [ 2 ]

0 голосов
/ 20 мая 2011

Проверьте, содержит ли ваша банка / одна из ваших файлов индексный файл (META_INF/INDEX.LIST). Если да, посмотрите на него, он может содержать недопустимые записи индекса.

Вот статья о вашем исключении: Почему возникает InvalidJarIndexException?

0 голосов
/ 20 мая 2011

Похоже, что загрузчик классов ищет файл класса в некотором банке и не может его найти.

Поскольку вы говорите только о .java файлах - дважды проверьте, что все файлы были скомпилированы и добавлены в файл jar.

Только что увидел, что в log4j произошло исключение - перепроверьте, что log4j.jar находится на пути к классам во время выполнения теста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...