Конфигурирование муравья для выполнения модульных тестов. Где библиотеки должны быть? Как путь к классу должен быть настроен? уход от ZipException

19
задан prolink007 16 October 2012 в 21:42
поделиться

4 ответа

Найденный моей проблемой. Я включал свой каталог классов в мой путь с помощью fileset в противоположность pathelement, это заставляло .class файлы быть открытыми как ZipFiles, который, конечно, выдал исключение.

15
ответ дан 30 November 2019 в 04:25
поделиться

Это кажется, что существует проблема с путями.

Проверка после ошибочного источника:

  • путь к классу: распечатайте переменную пути к классу в тесте junit, выполните ее от затмения и муравья, таким образом, можно сравнить их
  • Проверка проект для полных путей. Вероятно, муравей использует другие префиксы пути, чем затмение.

еще Некоторая информация помогла бы помочь :)

Удачи!

2
ответ дан 30 November 2019 в 04:25
поделиться

Спасибо, ребята, за эту информацию. Я просто хочу добавить несколько советов из своего опыта. У меня та же проблема с junit, что и у вас, когда junit пытается открыть файлы лицензии * .txt в папке lib, где находится * .jar (процесс разрешения Ivy помещает их сюда) Так что

<path id="lib.path.id">
    <fileset dir="${lib.dir}" includes="**.jar"/>
</path>

тоже помогает.

0
ответ дан 30 November 2019 в 04:25
поделиться

Эта ошибка вызвана тем, что путь класса содержит явные ссылки на один или несколько [файлов], которые не являются JAR'ами. Ссылка на "ошибку при открытии zip-файла", конечно, означает, что JAR - это, по сути, ZIP-файл, в то время как другие файлы [JUNIT], такие как файлы классов, не являются и как таковые не имеют формата zip. Поэтому путь к классу должен содержать только явные ссылки на [файлы] JAR и/или имена [каталогов], в которых должны быть найдены другие ресурсы, такие как файлы классов.

Поэтому при создании пути класса (в ANT) используйте:

<path id="proj.class.path">
    <pathelement location="c:/my/project/root" />       :one for each of the [directories] where class files, log4j property files and other resources etc are to be found
    <fileset refid="my.file.set">                   :to describe all the explicit JAR [files] that need to be on the class path.
</path>

where

<fileset id="my.file.set" dir="c:/where/i/keep/my/jars">
    <filename name="myjar1.jar" />
    <filename name="myjar2.jar" />
    <filename name="myjar3.jar" />
</fileset>

или

ПРИМЕЧАНИЕ: При использовании подстановочных карт, таких как [**/*], необходимо убедиться, что подстановочная карта не соответствует файлам, которые не являются JAR файлами

<fileset id="my.file.set" dir="c:/where/i/keep/my/jars">
    <include name="**/*.jar" />
</fileset>
9
ответ дан 30 November 2019 в 04:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: