Совместное использование тестового ресурса между модулями - PullRequest
2 голосов
/ 12 января 2012

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

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

Я сделал все в соответствии с Совместное использование ресурсов тестирования между maven проектами . Теперь из теста 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() возвращает false).

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

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

<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 Ответ

1 голос
/ 12 января 2012

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

Как мне перечислить файлы в файле JAR?

...