Тесты провалились в Дженкинсе - PullRequest
3 голосов
/ 16 июня 2011

У меня есть проект maven, который собирается и тестируется в Jenkins. На моей локальной машине тесты выполнены успешно, но в Jenkins не может быть загружен файл, который необходим для теста. Я использую this.getClass.getResourceAsStream("testfile.dat") для загрузки ресурса. Кажется, что Дженкинс не копирует файлы ресурсов в каталог, в котором выполняются тесты. Это проблема maven? Как мне посоветовать Jenkins / Maven скопировать ресурсы в тестовый путь к классам?

Ответы [ 3 ]

5 голосов
/ 16 июня 2011

Поместите свои тестовые ресурсы в src/test/resources дерево вашего проекта Maven. Maven будет гарантировать, что они находятся на пути к классам при запуске ваших тестов, и, следовательно, их можно найти с помощью getResourceAsStream(...).

0 голосов
/ 12 марта 2014

У меня была похожая проблема, но я не хотел перемещать ресурсы в src / test / resources по разным причинам.Тем не менее, я мог бы решить эту проблему, добавив явно все подпапки в файл pom.xml, как показано в следующем фрагменте:

<build>
  <resources>
    <resource>
        <directory>myFolder/subFolder1</directory>
    </resource>
    <resource>
        <directory>myFolder/subFolder2</directory>
    </resource>
    <resource>
        <directory>myFolder/subFolder3</directory>
    </resource>
  </resources>
    [....]
</build>
0 голосов
/ 16 июня 2011

Когда вы используете getResourceAsStream со строковым аргументом, который не указывает пакет (как в вашем примере "testfile.dat"), ресурс должен находиться в том же пакете (или папке), что и Class объект, для которого вы вызываете метод getResourceAsStream.Вы должны проверить, действительно ли оба класса и его ресурсы находятся в одном пакете.

Возможно, вы захотите взглянуть на папку target, которую генерирует Maven при упаковке вашего проекта, вы можете узнать, где находится вашресурсы заканчиваются там.

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