2012-01-12 5 views
2

Я хочу поделиться тестовыми ресурсами между 2-мя модулями A и B. В тестовых ресурсах у меня есть каталог с некоторыми файлами. Как этоСовместное использование ресурсов тестирования между модулями выпуск

-dir 
----f1 
----f2 

Я сделал все в соответствии с Share test resources between maven projects. Теперь из теста B я могу получить доступ к ресурсам, используя синтаксис вроде:

this.getClass().getClassLoader().getResource("dir/f1") 

И он отлично работает. Но мне не нужны хардкорные имена всех файлов, такие как f1 или f2. Я действительно хочу получить все файлы из каталога. Как

File foo = new File(this.getClass().getClassLoader().getResource("dir").getFile()); 
assert foo.isDirectory() 
foo.list() 
... 

Но когда я создаю Foo таким образом, даже не существует (foo.exist() возвращает ложь).

Как я могу справиться с этим?

Обновление. Альтернативное решение с использованием муравей

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <version>1.5</version> 
    <executions> 
     <execution> 
      <configuration> 
       <target> 
        <fileset id="d" dir="${basedir}/src/test/resources/dir" includes="*"/> 
        <pathconvert property="d" refid="d"> 
         <map from="${basedir}/src/test/resources/" to=""/> 
        </pathconvert> 
        <touch file="${basedir}/src/test/resources/d/listOfCharts.txt"/> 
        <echo file="${basedir}/src/test/resources/d/listOfCharts.txt" message="${charts}"/> 
       </target> 
      </configuration> 
      <phase>package</phase> 
      <goals> 
       <goal>run</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

ответ

1

подход вы говорите о создает файл JAR, который может быть использован в последующих тестах. Вы не можете перечислить содержимое Jar таким образом. Вы должны использовать Jar вам нужно прочитать его как Jar специально

How do I list the files inside a JAR file?

+0

спасибо я буду смотреть на этот подход. –

+0

Он выглядит хорошо. Но я решил использовать для этого 'maven-antrun-plugin'. Если вам интересно, ознакомьтесь с обновленным ответом. –

Смежные вопросы